From 63415c5875d0c675226efcc810d7630204ff0bb9 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 17:45:27 +0000 Subject: Add initial attempt at github action --- .github/workflows/build.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..9f5d4592 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,25 @@ +name: Build TCPDBench + +on: + push: + pull_request: + schedule: + - cron: 42 8 * * */21 + +jobs: + tcpdbench-docker: + name: Check TCPDBench (docker) + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Build TCPDBench docker image + run: docker build -t alan-turing-institute/tcpdbench . + + - name: Create output directory + run: mkdir -p docker_output + + - name: Recreate output and test for differences + run: -v docker_output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" -- cgit v1.2.3 From 90957788063d8967885aaeb2ae3608254f94d0ec Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 17:51:49 +0000 Subject: Install python3-venv --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 8ecc12a6..199b83e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ RUN apt-get install -y --no-install-recommends \ python3 \ python3-dev \ python3-tk \ + python3-venv \ python3-pip && \ pip3 install --no-cache-dir --upgrade setuptools && \ echo "alias python='python3'" >> /root/.bash_aliases && \ -- cgit v1.2.3 From 89277804d3602daeba9c11af401b9546996fefb3 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:00:04 +0000 Subject: Install wheel package --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 199b83e7..cac41ca1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ RUN apt-get install -y --no-install-recommends \ echo "alias pip='pip3'" >> /root/.bash_aliases && \ cd /usr/local/bin && ln -s /usr/bin/python3 python && \ cd /usr/local/bin && ln -s /usr/bin/pip3 pip && \ - pip install virtualenv abed + pip install virtualenv abed wheel # Set the default shell to bash RUN mv /bin/sh /bin/sh.old && cp /bin/bash /bin/sh -- cgit v1.2.3 From aac0b97271737958fbf13c97d8f7d055960a9ca3 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:01:38 +0000 Subject: Add docker command --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f5d4592..6e9193dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,4 +22,4 @@ jobs: run: mkdir -p docker_output - name: Recreate output and test for differences - run: -v docker_output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" + run: docker -v docker_output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" -- cgit v1.2.3 From 7422674ea67aaba19799f6d3dae6569817ba88f6 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:09:24 +0000 Subject: Show output of commands --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e9193dc..0acc1f26 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,3 +23,6 @@ jobs: - name: Recreate output and test for differences run: docker -v docker_output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" + + - name: Show output + run: ls -R docker_output -- cgit v1.2.3 From a95ecbe08df57ab47d5b12855a7cd1555b1a1c53 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:23:44 +0000 Subject: Move docker build to separate action --- .github/workflows/action.yml | 5 +++++ .github/workflows/build.yml | 18 +++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/action.yml diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml new file mode 100644 index 00000000..7110d442 --- /dev/null +++ b/.github/workflows/action.yml @@ -0,0 +1,5 @@ +name: TCPDBench Docker +description: Runs the TCPDBench checks using Docker +runs: + using: docker + image: ../../Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0acc1f26..ebcd846b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,19 +10,15 @@ jobs: tcpdbench-docker: name: Check TCPDBench (docker) runs-on: ubuntu-latest + container: + volumes: + - ./analysis/output:/TCPDBench/analysis/output steps: - name: Checkout uses: actions/checkout@v2 - - name: Build TCPDBench docker image - run: docker build -t alan-turing-institute/tcpdbench . - - - name: Create output directory - run: mkdir -p docker_output - - - name: Recreate output and test for differences - run: docker -v docker_output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" - - - name: Show output - run: ls -R docker_output + - name: TCPDBench docker check + uses: ./.github/workflows/ + with: + entrypoint: "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" -- cgit v1.2.3 From 745910db64b7ea7e40683e620c48cf5aa971981a Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:29:23 +0000 Subject: Try to get the non-docker approach working first --- .github/workflows/build.yml | 47 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ebcd846b..3ce26a3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,18 +7,45 @@ on: - cron: 42 8 * * */21 jobs: - tcpdbench-docker: - name: Check TCPDBench (docker) + tcpdbench-ubuntu: + name: Check TCPDBench (direct) runs-on: ubuntu-latest - container: - volumes: - - ./analysis/output:/TCPDBench/analysis/output steps: - - name: Checkout - uses: actions/checkout@v2 + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install build-essential latexmk + shell: bash + + - name: Install Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' - - name: TCPDBench docker check - uses: ./.github/workflows/ + - name: Checkout code + uses: actions/checkout@v2 with: - entrypoint: "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" + submodules: true + + - name: Install Python dependencies + run: pip install -r ./analysis/requirements.txt + shell: bash + + - name: Make results + run: make results + shell: bash + + # tcpdbench-docker: + # name: Check TCPDBench (docker) + # runs-on: ubuntu-latest + # container: + # volumes: + # - ./analysis/output:/TCPDBench/analysis/output + # + # steps: + # - name: Checkout + # uses: actions/checkout@v2 + # + # - name: TCPDBench docker check + # uses: ./.github/workflows/ + # with: + # entrypoint: "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" -- cgit v1.2.3 From cc1c1df670f3f16b897358b34f81d6c72328458f Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:31:37 +0000 Subject: add texlive-latex-extra for standalone.cls --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ce26a3c..f07ab8be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Install dependencies - run: sudo apt-get update && sudo apt-get install build-essential latexmk + run: sudo apt-get update && sudo apt-get install build-essential latexmk texlive-latex-extra shell: bash - name: Install Python 3.8 -- cgit v1.2.3 From 44abda544eb7753b989cb7a9ecef1d71fcd1836a Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:36:28 +0000 Subject: Add result check via git --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f07ab8be..1d5eb0c9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,10 @@ jobs: run: make results shell: bash + - name: Check results + run: git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code + shell: bash + # tcpdbench-docker: # name: Check TCPDBench (docker) # runs-on: ubuntu-latest -- cgit v1.2.3 From deb6d8f7d59663c0ad5f86f6a31b8208eaa5465e Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:43:07 +0000 Subject: second attempt at running docker checks --- .github/scripts/test_docker.sh | 19 +++++++++++++++++++ .github/workflows/action.yml | 5 ----- .github/workflows/build.yml | 29 ++++++++++++++--------------- 3 files changed, 33 insertions(+), 20 deletions(-) create mode 100755 .github/scripts/test_docker.sh delete mode 100644 .github/workflows/action.yml diff --git a/.github/scripts/test_docker.sh b/.github/scripts/test_docker.sh new file mode 100755 index 00000000..8a2132e5 --- /dev/null +++ b/.github/scripts/test_docker.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Test TCPDBench build using Docker +# +# Author: G.J.J. van den Burg +# Date: 2021-01-26 +# + +set -e -u -x -o pipefail + +echo "Building docker image" + +docker build -t alan-turing-institute/tcpdbench . + +mkdir -p ${GITHUB_WORKSPACE}/analysis/output + +docker run -v ${GITHUB_WORKSPACE}/analysis/output:/TCPDBench/analysis/output \ + alan-turing-institute/tcpdbench \ + /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml deleted file mode 100644 index 7110d442..00000000 --- a/.github/workflows/action.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: TCPDBench Docker -description: Runs the TCPDBench checks using Docker -runs: - using: docker - image: ../../Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d5eb0c9..3abb7b27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,18 +38,17 @@ jobs: run: git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code shell: bash - # tcpdbench-docker: - # name: Check TCPDBench (docker) - # runs-on: ubuntu-latest - # container: - # volumes: - # - ./analysis/output:/TCPDBench/analysis/output - # - # steps: - # - name: Checkout - # uses: actions/checkout@v2 - # - # - name: TCPDBench docker check - # uses: ./.github/workflows/ - # with: - # entrypoint: "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" + tcpdbench-docker: + name: Check TCPDBench (docker) + runs-on: ubuntu-latest + container: + volumes: + - ./analysis/output:/TCPDBench/analysis/output + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: TCPDBench docker check + run: ./.github/scripts/test_docker.sh + shell: bash -- cgit v1.2.3 From 4495caa662f340942d5e432594d02d7a3b9ab91b Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:43:33 +0000 Subject: remove container directive --- .github/workflows/build.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3abb7b27..d0fd7899 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,10 +41,6 @@ jobs: tcpdbench-docker: name: Check TCPDBench (docker) runs-on: ubuntu-latest - container: - volumes: - - ./analysis/output:/TCPDBench/analysis/output - steps: - name: Checkout uses: actions/checkout@v2 -- cgit v1.2.3 From dc915783fe77d331c21f5bfd61db76751d6328a2 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 18:58:04 +0000 Subject: test building virtualenvs in docker --- .github/scripts/test_docker.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/scripts/test_docker.sh b/.github/scripts/test_docker.sh index 8a2132e5..56dccf34 100755 --- a/.github/scripts/test_docker.sh +++ b/.github/scripts/test_docker.sh @@ -12,8 +12,16 @@ echo "Building docker image" docker build -t alan-turing-institute/tcpdbench . +echo "Creating output directory" + mkdir -p ${GITHUB_WORKSPACE}/analysis/output +echo "Recreating results and checking for differences" + docker run -v ${GITHUB_WORKSPACE}/analysis/output:/TCPDBench/analysis/output \ alan-turing-institute/tcpdbench \ /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" + +echo "Test building the virtual environments" + +docker run alan-turing-institute/tcpdbench /bin/bash -c "make venvs" -- cgit v1.2.3 From 55fd704acbde95c4d57312804f95767db117c1b9 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 20:18:54 +0000 Subject: Rename build workflow --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d0fd7899..039af444 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build TCPDBench +name: Reproducible Research on: push: -- cgit v1.2.3 From 416288ca1e4af459c61a6d53e0993cbddcc0b584 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 26 Jan 2021 20:19:29 +0000 Subject: remove travis config --- .travis.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5ec909d5..00000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: generic - -services: - - docker - -before_install: - - docker build -t alan-turing-institute/tcpdbench . - -script: - - mkdir -p /home/travis/build/alan-turing-institute/analysis/output - # create results (tables/figures) in the docker container note that we - # consider the build successful if there is no difference between the - # results in the repo and that generated by travis. An exception are the - # pdf files, which often differ due to different latex versions etc. - - docker run -v /home/travis/build/alan-turing-institute/analysis/output:/TCPDBench/analysis/output alan-turing-institute/tcpdbench /bin/bash -c "make clean && make results && git checkout ./analysis/output/rankplots/*.pdf && git diff --exit-code" - # Test that the virtual environments can be created. The virtualenvs are - # needed to run the experiments using the same package versions as used in - # the paper. Since these may depend on external (third-party) packages, - # they can potentially be fragile to unexpected changes, so we want to - # make sure we're notified when they no longer build correctly. - # - docker run alan-turing-institute/tcpdbench /bin/bash -c "make venvs" -- cgit v1.2.3