mirror of
https://github.com/zardus/ctf-tools
synced 2024-11-10 08:24:12 +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:
|
||||
|
||||
- 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='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='afl android-sdk burpsuite firmware-mod-kit gdb jdgui keystone pwndbg pwntools radare2 unicorn veles xrop yafu' # estimated 1986 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='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='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='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' EXPECTFAIL=1 TOOL='qira taintgrind z3' # estimated 1831 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' TOOL='qemu' # unknown duration...
|
||||
- DISTRO='trusty' TOOL='android-sdk barf df featherduster stegdetect z3' # estimated 1984 seconds
|
||||
- DISTRO='trusty' TOOL='qemu' # estimated 2066 seconds
|
||||
- DISTRO='trusty' TOOL='bindead capstone dirb gdb jdgui qira ropper snowman' # estimated 1985 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='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' EXPECTFAIL=1 TOOL='angr panda sonic-visualizer taintgrind' # estimated 1949 seconds
|
||||
- DISTRO='trusty' EXPECTFAIL=1 TOOL='beef gdb-heap pathgrind reveng veles wcc xrop' # estimated 147 seconds
|
||||
- DISTRO='xenial' TOOL='qemu' # estimated 1915 seconds
|
||||
- DISTRO='xenial' TOOL='barf snowman z3' # estimated 1946 seconds
|
||||
- DISTRO='xenial' TOOL='afl android-sdk angr codereason firmware-mod-kit gdb keystone mitmproxy veles' # 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' 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='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='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='barf capstone jdgui stegdetect yafu z3' # estimated 1995 seconds
|
||||
- DISTRO='trusty' TOOL='qemu' # estimated 2160 seconds
|
||||
- DISTRO='trusty' TOOL='apktool bindead featherduster gdb qira snowman' # estimated 1976 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' 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='trusty' EXPECTFAIL=1 TOOL='angr panda sonic-visualizer' # estimated 1877 seconds
|
||||
- DISTRO='trusty' EXPECTFAIL=1 TOOL='beef gdb-heap pathgrind reveng taintgrind veles wcc xrop' # estimated 303 seconds
|
||||
- DISTRO='xenial' TOOL='qemu' # estimated 1928 seconds
|
||||
- DISTRO='xenial' TOOL='barf keystone mitmproxy z3' # estimated 1920 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:
|
||||
- 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