mirror of
https://github.com/zardus/ctf-tools
synced 2025-01-21 00:43:56 +00:00
page with buildstatus per tool
This commit is contained in:
parent
3d9604ce09
commit
6cb4058d12
12 changed files with 245 additions and 19 deletions
37
.travis.yml
37
.travis.yml
|
@ -10,26 +10,25 @@ before_install:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
|
||||||
- DISTRO='fedora' TOOL='apktool binwalk burpsuite capstone checksec commix cribdrag dirsearch elfkickers evilize exetractor foresight gdb gef jdgui libheap pdf-parser peda peepdf pkcrack python-paddingoracle pyvmmonitor radare2 ropper rp++ scrdec18 shellnoob shellsploit ssh_decoder steganabara stegsolve subbrute unicorn virtualsocket xortool yafu z3' # estimated 1944 seconds
|
- DISTRO='archlinux' TOOL='afl android-sdk apktool binwalk burpsuite checksec df dirb elfkickers evilize featherduster firmware-mod-kit gdb hashpump hashpump-partialhash honggfuzz jdgui keystone libheap msieve pkcrack pwndbg pwntools python-paddingoracle pyvmmonitor radare2 sqlmap sslsplit testdisk tor-browser unicorn veles virtualsocket xortool xrop yafu zsteg' # estimated 2000 seconds
|
||||||
- DISTRO='fedora' EXPECTFAIL=1 TOOL='afl android-sdk angr barf beef bindead codereason df dirb dislocker elfparser featherduster firmware-mod-kit gdb-heap hash-identifier hashkill hashpump hashpump-partialhash honggfuzz keystone littleblackbox mitmproxy msieve panda pathgrind pemcrack preeny pwndbg pwntools python-pin qemu qira reveng snowman sonic-visualizer sqlmap sslsplit stegdetect taintgrind testdisk tor-browser veles villoc wcc xrop xspy zsteg' # estimated 555 seconds
|
- DISTRO='archlinux' TOOL='commix cribdrag dirsearch exetractor foresight gef pdf-parser peda peepdf pemcrack rp++ scrdec18 shellnoob ssh_decoder steganabara stegsolve subbrute' # estimated 16 seconds
|
||||||
- DISTRO='archlinux' TOOL='afl android-sdk burpsuite firmware-mod-kit gdb jdgui keystone pwndbg pwntools radare2 unicorn veles xrop yafu' # estimated 1986 seconds
|
- DISTRO='archlinux' EXPECTFAIL=1 TOOL='qira taintgrind z3' # estimated 1831 seconds
|
||||||
- DISTRO='archlinux' TOOL='apktool binwalk checksec commix cribdrag df dirb dirsearch elfkickers evilize exetractor featherduster foresight gef hashpump hashpump-partialhash honggfuzz libheap msieve pdf-parser peda peepdf pemcrack pkcrack python-paddingoracle pyvmmonitor rp++ scrdec18 shellnoob sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute testdisk tor-browser virtualsocket xortool zsteg' # estimated 362 seconds
|
- DISTRO='archlinux' EXPECTFAIL=1 TOOL='angr barf beef bindead capstone codereason dislocker elfparser gdb-heap hash-identifier hashkill littleblackbox mitmproxy panda pathgrind preeny python-pin reveng ropper shellsploit snowman sonic-visualizer stegdetect villoc wcc xspy' # estimated 764 seconds
|
||||||
- DISTRO='archlinux' EXPECTFAIL=1 TOOL='qira sonic-visualizer taintgrind z3' # estimated 1976 seconds
|
|
||||||
- DISTRO='archlinux' EXPECTFAIL=1 TOOL='angr barf beef bindead capstone codereason dislocker elfparser gdb-heap hash-identifier hashkill littleblackbox mitmproxy panda pathgrind preeny python-pin reveng ropper shellsploit snowman stegdetect villoc wcc xspy' # estimated 461 seconds
|
|
||||||
# - DISTRO='archlinux' TOOL='qemu' # unknown duration...
|
# - DISTRO='archlinux' TOOL='qemu' # unknown duration...
|
||||||
- DISTRO='trusty' TOOL='android-sdk barf df featherduster stegdetect z3' # estimated 1984 seconds
|
- DISTRO='fedora' TOOL='apktool binwalk burpsuite capstone checksec commix cribdrag dirsearch elfkickers evilize exetractor foresight gdb gef jdgui libheap pdf-parser peda peepdf pkcrack python-paddingoracle pyvmmonitor radare2 ropper rp++ scrdec18 shellnoob shellsploit ssh_decoder steganabara stegsolve subbrute unicorn virtualsocket xortool yafu z3' # estimated 1779 seconds
|
||||||
- DISTRO='trusty' TOOL='qemu' # estimated 2066 seconds
|
- DISTRO='fedora' EXPECTFAIL=1 TOOL='afl android-sdk angr barf beef bindead codereason df dirb dislocker elfparser featherduster firmware-mod-kit gdb-heap hash-identifier hashkill hashpump hashpump-partialhash honggfuzz keystone littleblackbox mitmproxy msieve panda pathgrind pemcrack preeny pwndbg pwntools python-pin qemu qira reveng snowman sonic-visualizer sqlmap sslsplit stegdetect taintgrind testdisk tor-browser veles villoc wcc xrop xspy zsteg' # estimated 549 seconds
|
||||||
- DISTRO='trusty' TOOL='bindead capstone dirb gdb jdgui qira ropper snowman' # estimated 1985 seconds
|
- DISTRO='trusty' TOOL='barf capstone jdgui stegdetect yafu z3' # estimated 1995 seconds
|
||||||
- DISTRO='trusty' TOOL='afl apktool burpsuite codereason elfparser firmware-mod-kit hashkill keystone mitmproxy msieve pwndbg pwntools radare2 tor-browser unicorn yafu' # estimated 1984 seconds
|
- DISTRO='trusty' TOOL='qemu' # estimated 2160 seconds
|
||||||
- DISTRO='trusty' TOOL='binwalk checksec commix cribdrag dirsearch dislocker elfkickers evilize exetractor foresight gef hash-identifier hashpump hashpump-partialhash honggfuzz libheap littleblackbox pdf-parser peda peepdf pemcrack pkcrack preeny python-paddingoracle python-pin pyvmmonitor rp++ scrdec18 shellnoob shellsploit sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute testdisk villoc virtualsocket xortool xspy zsteg' # estimated 221 seconds
|
- DISTRO='trusty' TOOL='apktool bindead featherduster gdb qira snowman' # estimated 1976 seconds
|
||||||
- DISTRO='trusty' EXPECTFAIL=1 TOOL='angr panda sonic-visualizer taintgrind' # estimated 1949 seconds
|
- DISTRO='trusty' TOOL='afl android-sdk burpsuite codereason df firmware-mod-kit hashkill keystone mitmproxy pwndbg pwntools radare2 unicorn' # estimated 1976 seconds
|
||||||
- DISTRO='trusty' EXPECTFAIL=1 TOOL='beef gdb-heap pathgrind reveng veles wcc xrop' # estimated 147 seconds
|
- DISTRO='trusty' TOOL='binwalk checksec commix cribdrag dirb dirsearch dislocker elfkickers elfparser evilize exetractor foresight gef hash-identifier hashpump hashpump-partialhash honggfuzz libheap littleblackbox msieve pdf-parser peda peepdf pemcrack pkcrack preeny python-paddingoracle python-pin pyvmmonitor ropper rp++ scrdec18 shellnoob shellsploit sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute testdisk tor-browser villoc virtualsocket xortool xspy zsteg' # estimated 374 seconds
|
||||||
- DISTRO='xenial' TOOL='qemu' # estimated 1915 seconds
|
- DISTRO='trusty' EXPECTFAIL=1 TOOL='angr panda sonic-visualizer' # estimated 1877 seconds
|
||||||
- DISTRO='xenial' TOOL='barf snowman z3' # estimated 1946 seconds
|
- DISTRO='trusty' EXPECTFAIL=1 TOOL='beef gdb-heap pathgrind reveng taintgrind veles wcc xrop' # estimated 303 seconds
|
||||||
- DISTRO='xenial' TOOL='afl android-sdk angr codereason firmware-mod-kit gdb keystone mitmproxy veles' # estimated 1928 seconds
|
- DISTRO='xenial' TOOL='qemu' # estimated 1928 seconds
|
||||||
- DISTRO='xenial' TOOL='apktool binwalk burpsuite capstone checksec commix cribdrag df dirb dirsearch dislocker elfkickers elfparser evilize exetractor featherduster foresight gef hash-identifier hashpump hashpump-partialhash honggfuzz jdgui libheap littleblackbox msieve pdf-parser peda peepdf pemcrack pkcrack preeny pwndbg python-paddingoracle pyvmmonitor radare2 ropper rp++ scrdec18 shellnoob shellsploit sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute testdisk tor-browser unicorn virtualsocket xortool xspy yafu' # estimated 998 seconds
|
- DISTRO='xenial' TOOL='barf keystone mitmproxy z3' # estimated 1920 seconds
|
||||||
- DISTRO='xenial' EXPECTFAIL=1 TOOL='beef bindead gdb-heap hashkill panda pathgrind pwntools python-pin qira reveng sonic-visualizer stegdetect taintgrind villoc wcc xrop zsteg' # estimated 486 seconds
|
- DISTRO='xenial' TOOL='afl android-sdk angr firmware-mod-kit gdb snowman' # estimated 1985 seconds
|
||||||
|
- DISTRO='xenial' TOOL='apktool binwalk burpsuite capstone checksec codereason commix cribdrag df dirb dirsearch dislocker elfkickers elfparser evilize exetractor featherduster foresight gef hash-identifier hashpump hashpump-partialhash honggfuzz jdgui libheap littleblackbox msieve pdf-parser peda peepdf pemcrack pkcrack preeny pwndbg python-paddingoracle pyvmmonitor radare2 ropper rp++ scrdec18 shellnoob shellsploit sqlmap ssh_decoder sslsplit steganabara stegsolve subbrute testdisk tor-browser unicorn veles virtualsocket xortool xspy yafu' # estimated 1230 seconds
|
||||||
|
- DISTRO='xenial' EXPECTFAIL=1 TOOL='beef bindead gdb-heap hashkill panda pathgrind pwntools python-pin qira reveng sonic-visualizer stegdetect taintgrind villoc wcc xrop zsteg' # estimated 457 seconds
|
||||||
script:
|
script:
|
||||||
- travis_wait 50 ./bin/travis-ci.sh
|
- travis_wait 50 ./bin/travis-ci.sh
|
||||||
|
|
||||||
|
|
3
.travis.yml.footer
Normal file
3
.travis.yml.footer
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
script:
|
||||||
|
- travis_wait 50 ./bin/travis-ci.sh
|
||||||
|
|
12
.travis.yml.header
Normal file
12
.travis.yml.header
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
language: bash
|
||||||
|
sudo: required
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
before_install:
|
||||||
|
- if [ "$DISTRO" = "archlinux" ]; then docker build -t ctftools -f Dockerfile.archlinux .; fi
|
||||||
|
- if [ "$DISTRO" = "fedora" ]; then docker build -t ctftools -f Dockerfile.fedora .; fi
|
||||||
|
- if [ "$DISTRO" = "xenial" ]; then docker build -t ctftools -f Dockerfile.xenial .; fi
|
||||||
|
- if [ "$DISTRO" = "trusty" ]; then docker build -t ctftools -f Dockerfile .; fi
|
||||||
|
|
||||||
|
env:
|
||||||
|
|
BIN
_buildstatus/fail.png
Normal file
BIN
_buildstatus/fail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
86
_buildstatus/index.md
Normal file
86
_buildstatus/index.md
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
| archlinux | fedora | trusty | xenial
|
||||||
|
----- | ----- | ----- | ----- | -----
|
||||||
|
afl | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
android-sdk | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
angr | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png)
|
||||||
|
apktool | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
barf | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
beef | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
bindead | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
binwalk | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
burpsuite | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
capstone | ![fail](fail.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
checksec | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
codereason | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
commix | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
cribdrag | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
df | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
dirb | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
dirsearch | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
dislocker | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
elfkickers | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
elfparser | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
evilize | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
exetractor | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
featherduster | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
firmware-mod-kit | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
foresight | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
gdb | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
gdb-heap | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
gef | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
hash-identifier | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
hashkill | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
hashpump | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
hashpump-partialhash | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
honggfuzz | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
jdgui | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
keystone | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
libheap | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
littleblackbox | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
mitmproxy | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
msieve | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
panda | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
pathgrind | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
pdf-parser | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
peda | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
peepdf | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
pemcrack | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
pkcrack | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
preeny | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
pwndbg | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
pwntools | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
python-paddingoracle | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
python-pin | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
pyvmmonitor | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
qemu | ![unknown](unknown.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
qira | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
radare2 | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
reveng | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
ropper | ![fail](fail.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
rp++ | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
scrdec18 | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
shellnoob | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
shellsploit | ![fail](fail.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
snowman | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
sonic-visualizer | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
sqlmap | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
ssh_decoder | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
sslsplit | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
steganabara | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
stegdetect | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
stegsolve | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
subbrute | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
taintgrind | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
testdisk | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
tor-browser | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
unicorn | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
veles | ![success](success.png) | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png)
|
||||||
|
villoc | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
||||||
|
virtualsocket | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
wcc | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
xortool | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
xrop | ![success](success.png) | ![fail](fail.png) | ![fail](fail.png) | ![fail](fail.png)
|
||||||
|
xspy | ![fail](fail.png) | ![fail](fail.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
yafu | ![success](success.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
z3 | ![fail](fail.png) | ![success](success.png) | ![success](success.png) | ![success](success.png)
|
||||||
|
zsteg | ![success](success.png) | ![fail](fail.png) | ![success](success.png) | ![fail](fail.png)
|
BIN
_buildstatus/success.png
Normal file
BIN
_buildstatus/success.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
_buildstatus/unknown.png
Normal file
BIN
_buildstatus/unknown.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 633 B |
13
bin/travis-ci-status/Dockerfile
Normal file
13
bin/travis-ci-status/Dockerfile
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
FROM ubuntu:xenial
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install python-software-properties software-properties-common build-essential git python-pip ipython vim
|
||||||
|
RUN apt-add-repository ppa:brightbox/ruby-ng
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install ruby2.1 ruby2.1-dev ruby-switch
|
||||||
|
RUN ruby-switch --set ruby2.1
|
||||||
|
|
||||||
|
RUN gem install travis -v 1.8.8 --no-rdoc --no-ri
|
||||||
|
RUN pip install binpacking
|
||||||
|
|
||||||
|
WORKDIR /gitdata
|
23
bin/travis-ci-status/fetch_latest_timingdata.inside-docker.sh
Executable file
23
bin/travis-ci-status/fetch_latest_timingdata.inside-docker.sh
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
tmpfile=$(mktemp)
|
||||||
|
|
||||||
|
# Fetch data
|
||||||
|
(
|
||||||
|
for i in $(travis show --skip-completion-check --no-interactive | grep '^#' | awk '{print $1}' | tr "#" " ");
|
||||||
|
do
|
||||||
|
travis logs --skip-completion-check --no-interactive "$i" | grep '^\[ACCOUNTING\]=====\[' | cut -d' ' -f2-5
|
||||||
|
done
|
||||||
|
) > $tmpfile
|
||||||
|
|
||||||
|
# generate travis-ci data
|
||||||
|
(
|
||||||
|
cat /gitdata/.travis.yml.header
|
||||||
|
/gitdata/bin/travis-ci-status/make_binpacked_travis_ci_conf.py $tmpfile
|
||||||
|
cat /gitdata/.travis.yml.footer
|
||||||
|
) > /gitdata/.travis.yml
|
||||||
|
|
||||||
|
# generate build status data
|
||||||
|
/gitdata/bin/travis-ci-status/make_build_status_md.py $tmpfile > /gitdata/_buildstatus/index.md
|
||||||
|
|
||||||
|
rm -f $tmpfile
|
17
bin/travis-ci-status/fetch_latest_timingdata.sh
Executable file
17
bin/travis-ci-status/fetch_latest_timingdata.sh
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dockerimage=ctf-tools-travisbuildcheck
|
||||||
|
gitdir=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
|
if ! docker history $dockerimage &> /dev/null;
|
||||||
|
then
|
||||||
|
echo "Docker image \"$dockerimage\" does not exist. Run"
|
||||||
|
echo
|
||||||
|
echo " docker build -t $dockerimage ."
|
||||||
|
echo
|
||||||
|
echo "first, then retry this command."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker run --rm -v $gitdir:/gitdata -ti $dockerimage /gitdata/bin/travis-ci-status/fetch_latest_timingdata.inside-docker.sh
|
||||||
|
|
53
bin/travis-ci-status/make_binpacked_travis_ci_conf.py
Executable file
53
bin/travis-ci-status/make_binpacked_travis_ci_conf.py
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import binpacking, sys, pprint
|
||||||
|
|
||||||
|
MAXBINDURATION = 2000 # seconds
|
||||||
|
|
||||||
|
def parseOutput(fn):
|
||||||
|
lines = [l.strip() for l in open(fn).readlines()]
|
||||||
|
out = {}
|
||||||
|
|
||||||
|
for l in lines:
|
||||||
|
[distro, tool, success, duration] = l.split(" ")
|
||||||
|
if not distro in out:
|
||||||
|
out[distro] = {}
|
||||||
|
out[distro][tool] = {
|
||||||
|
"success": success == "SUCCEEDED",
|
||||||
|
"duration": int(duration)
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
|
||||||
|
def printBins(timingdata, distro, expectfail):
|
||||||
|
inputs = dict([(t, v["duration"]) for (t, v) in timingdata[distro].items() if v["success"] != expectfail])
|
||||||
|
bins = binpacking.to_constant_volume(inputs, MAXBINDURATION)
|
||||||
|
|
||||||
|
for b in bins:
|
||||||
|
tools = " ".join(sorted(b.keys()))
|
||||||
|
duration = sum(b.values())
|
||||||
|
if expectfail:
|
||||||
|
print("- DISTRO='{}' EXPECTFAIL=1 TOOL='{}' # estimated {} seconds".format(distro, tools, duration))
|
||||||
|
else:
|
||||||
|
print("- DISTRO='{}' TOOL='{}' # estimated {} seconds".format(distro, tools, duration))
|
||||||
|
|
||||||
|
def getToolsFromTimingdata(timingdata):
|
||||||
|
out = {}
|
||||||
|
for d, dd in timingdata.items():
|
||||||
|
for t, td in dd.items():
|
||||||
|
out[t] = 1
|
||||||
|
return out.keys()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
timingdata = parseOutput(sys.argv[1])
|
||||||
|
distros = sorted(timingdata.keys()) # all distros seen during previous build
|
||||||
|
tools = sorted(getToolsFromTimingdata(timingdata)) # all tools seen during previous build
|
||||||
|
|
||||||
|
for distro in distros:
|
||||||
|
printBins(timingdata, distro, False)
|
||||||
|
printBins(timingdata, distro, True)
|
||||||
|
|
||||||
|
# no timing data, assume the build took too long for this tool on this distro
|
||||||
|
nodata = [t for t in tools if t not in timingdata[distro]]
|
||||||
|
for tool in nodata:
|
||||||
|
print("# - DISTRO='{}' TOOL='{}' # unknown duration...".format(distro, tool))
|
||||||
|
|
20
bin/travis-ci-status/make_build_status_md.py
Executable file
20
bin/travis-ci-status/make_build_status_md.py
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from make_binpacked_travis_ci_conf import *
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
timingdata = parseOutput(sys.argv[1])
|
||||||
|
distros = sorted(timingdata.keys()) # all distros seen during previous build
|
||||||
|
tools = sorted(getToolsFromTimingdata(timingdata)) # all tools seen during previous build
|
||||||
|
|
||||||
|
print(" | ".join([""] + distros))
|
||||||
|
print(" | ".join(["-----"] * (1+len(distros))))
|
||||||
|
|
||||||
|
for tool in tools:
|
||||||
|
parts = []
|
||||||
|
for distro in distros:
|
||||||
|
val = "unknown"
|
||||||
|
if tool in timingdata[distro]:
|
||||||
|
val = "success" if timingdata[distro][tool]["success"] else "fail"
|
||||||
|
parts += [val]
|
||||||
|
print(" | ".join([tool] + ["![{0}]({0}.png)".format(x) for x in parts]))
|
Loading…
Reference in a new issue