From 9b74bc393ffefe71c4f66fe35bf1698f4dfb349d Mon Sep 17 00:00:00 2001 From: Matthias Volk Date: Thu, 23 May 2019 14:42:59 +0200 Subject: [PATCH] Travis: updated scripts and incorporated doxygen deployment --- .travis.yml | 261 ++++++++++---------- travis/build.sh | 9 +- travis/build_helper.sh | 59 +++-- travis/{deploy_carl.sh => deploy_docker.sh} | 13 +- travis/deploy_storm.sh | 47 ---- travis/generate_travis.py | 151 +++++------ travis/mtime_cache/globs.txt | 3 + travis/{install_linux.sh => skip_test.sh} | 5 - 8 files changed, 249 insertions(+), 299 deletions(-) rename travis/{deploy_carl.sh => deploy_docker.sh} (73%) delete mode 100755 travis/deploy_storm.sh rename travis/{install_linux.sh => skip_test.sh} (60%) diff --git a/.travis.yml b/.travis.yml index d38637977..c0282b855 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ branches: - master - stable sudo: required -dist: trusty language: cpp git: @@ -39,46 +38,48 @@ jobs: ### # Stage: Build Carl ### - # ubuntu-19.04 - DefaultDebugTravis - stage: Build Carl os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc - install: - - travis/install_linux.sh + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - travis/build_carl.sh - after_success: - - travis/deploy_carl.sh + before_cache: + - docker cp carl:/opt/carl/. . + deploy: + - provider: script + skip_cleanup: true + script: bash travis/deploy_docker.sh carl # ubuntu-19.04 - DefaultReleaseTravis - stage: Build Carl os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc - install: - - travis/install_linux.sh + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - travis/build_carl.sh - after_success: - - travis/deploy_carl.sh + before_cache: + - docker cp carl:/opt/carl/. . + deploy: + - provider: script + skip_cleanup: true + script: bash travis/deploy_docker.sh carl ### # Stage: Build (1st run) ### - # ubuntu-18.04 - DefaultDebug - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -91,10 +92,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -107,10 +108,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -123,10 +124,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -139,10 +140,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -155,10 +156,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -171,10 +172,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -187,10 +188,10 @@ jobs: - stage: Build (1st run) os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc install: - rm -rf build - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -203,14 +204,13 @@ jobs: ### # Stage: Build (2nd run) ### - # ubuntu-18.04 - DefaultDebug - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -223,9 +223,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -238,9 +238,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -253,9 +253,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -268,9 +268,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -283,9 +283,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -298,9 +298,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -313,9 +313,9 @@ jobs: - stage: Build (2nd run) os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -328,14 +328,13 @@ jobs: ### # Stage: Build (3rd run) ### - # ubuntu-18.04 - DefaultDebug - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -348,9 +347,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -363,9 +362,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -378,9 +377,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -393,9 +392,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -408,9 +407,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -423,9 +422,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -438,9 +437,9 @@ jobs: - stage: Build (3rd run) os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -453,14 +452,13 @@ jobs: ### # Stage: Build (4th run) ### - # ubuntu-18.04 - DefaultDebug - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -473,9 +471,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -488,9 +486,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -503,9 +501,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -518,9 +516,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -533,9 +531,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -548,9 +546,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -563,9 +561,9 @@ jobs: - stage: Build (4th run) os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: @@ -576,147 +574,142 @@ jobs: - find build -iname '*err*.log' -type f -print -exec cat {} \; ### - # Stage: Test all + # Stage: Tasks ### - # ubuntu-18.04 - DefaultDebug - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # ubuntu-18.04 - DefaultRelease - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.04 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # debian-9 - DefaultDebug - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # debian-9 - DefaultRelease - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=debian-9 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # ubuntu-18.10 - DefaultDebug - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultDebug LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # ubuntu-18.10 - DefaultRelease - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultRelease LINUX=ubuntu-18.10 COMPILER=gcc + env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.10 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; # ubuntu-19.04 - DefaultDebugTravis - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultDebugTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; - after_success: - - travis/deploy_storm.sh + deploy: + - provider: script + skip_cleanup: true + script: bash travis/deploy_docker.sh storm # ubuntu-19.04 - DefaultReleaseTravis - - stage: Test all + - stage: Tasks os: linux compiler: gcc - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-19.04 COMPILER=gcc install: - - travis/install_linux.sh + - travis/skip_test.sh before_script: - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode script: - - travis/build.sh TestAll + - travis/build.sh Tasks before_cache: - docker cp storm:/opt/storm/. . after_failure: - find build -iname '*err*.log' -type f -print -exec cat {} \; - after_success: - - travis/deploy_storm.sh - allow_failures: - - stage: Build (1st run) - os: linux - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc - - stage: Build (2nd run) - os: linux - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc - - stage: Build (3rd run) - os: linux - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc - - stage: Build (4th run) - os: linux - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc - - stage: Test all - os: linux - env: CONFIG=DefaultReleaseTravis LINUX=ubuntu-19.04 COMPILER=gcc + deploy: + - provider: script + skip_cleanup: true + script: bash travis/deploy_docker.sh storm + - provider: pages + skip_cleanup: true + github_token: $GITHUB_TOKEN + local_dir: build/doc/html/ + repo: moves-rwth/storm-doc + target_branch: master + on: + branch: master diff --git a/travis/build.sh b/travis/build.sh index 2873a6ec7..6e3094549 100755 --- a/travis/build.sh +++ b/travis/build.sh @@ -37,6 +37,11 @@ linux) docker run -d -it --name storm --privileged movesrwth/storm-basesystem:$LINUX ;; esac + # Install doxygen if necessary + if [[ "$TASK" == *Doxygen* ]] + then + docker exec storm apt-get install -qq -y doxygen + fi # Copy local content into container docker exec storm mkdir /opt/storm docker cp . storm:/opt/storm @@ -45,6 +50,7 @@ linux) # Execute main process docker exec storm bash -c " export CONFIG=$CONFIG; + export TASK=$TASK; export COMPILER=$COMPILER; export N_JOBS=$N_JOBS; export STLARG=; @@ -57,7 +63,8 @@ linux) osx) # Mac OSX STLARG="-stdlib=libc++" - export CONFIG=$CONFIG + export CONFIG + export TASK export COMPILER export N_JOBS export STLARG diff --git a/travis/build_helper.sh b/travis/build_helper.sh index f44b2feb2..662b66640 100755 --- a/travis/build_helper.sh +++ b/travis/build_helper.sh @@ -53,27 +53,44 @@ run() { fi ;; - TestAll) - # Test all - travis_fold start test_all - cd build - ctest test --output-on-failure - travis_fold end test_all - - # Check correctness of build types - echo "Checking correctness of build types" - case "$CONFIG" in - DefaultDebug*) - ./bin/storm --version | grep "with flags .* -g" || (echo "Error: Missing flag '-g' for debug build." && return 1) - ;; - DefaultRelease*) - ./bin/storm --version | grep "with flags .* -O3" || (echo "Error: Missing flag '-O3' for release build." && return 1) - ./bin/storm --version | grep "with flags .* -DNDEBUG" || (echo "Error: Missing flag '-DNDEBUG' for release build." && return 1) - ;; - *) - echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 - ;; - esac + Tasks) + # Perform tasks + if [[ "$TASK" == *Test* ]] + then + # Test all + travis_fold start test_all + cd build + ctest test --output-on-failure + travis_fold end test_all + + # Check correctness of build types + echo "Checking correctness of build types" + case "$CONFIG" in + DefaultDebug*) + ./bin/storm --version | grep "with flags .* -g" || (echo "Error: Missing flag '-g' for debug build." && return 1) + ;; + DefaultRelease*) + ./bin/storm --version | grep "with flags .* -O3" || (echo "Error: Missing flag '-O3' for release build." && return 1) + ./bin/storm --version | grep "with flags .* -DNDEBUG" || (echo "Error: Missing flag '-DNDEBUG' for release build." && return 1) + ;; + *) + echo "Unrecognized value of CONFIG: $CONFIG" + exit 1 + esac + cd .. + fi + + if [[ "$TASK" == *Doxygen* ]] + then + # Generate doxygen doc + travis_fold start make_doc + cd build + make -j$N_JOBS doc + # Disable jekyll as otherwise files with starting underscore are not published + echo "" > doc/html/.nojekyll + cd .. + travis_fold end make_doc + fi ;; *) diff --git a/travis/deploy_carl.sh b/travis/deploy_docker.sh similarity index 73% rename from travis/deploy_carl.sh rename to travis/deploy_docker.sh index 787e7fcec..c0fe17823 100755 --- a/travis/deploy_carl.sh +++ b/travis/deploy_docker.sh @@ -15,18 +15,20 @@ if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then exit 0; fi +echo "Deploying $1 to Dockerhub" + case $OS in linux) echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin # Deploy as debug/release case "$CONFIG" in *DebugTravis) - docker commit carl movesrwth/carl:travis-debug - docker push movesrwth/carl:travis-debug + docker commit $1 movesrwth/$1:travis-debug + docker push movesrwth/$1:travis-debug ;; *ReleaseTravis) - docker commit carl movesrwth/carl:travis - docker push movesrwth/carl:travis + docker commit $1 movesrwth/$1:travis + docker push movesrwth/$1:travis ;; *) echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 @@ -35,7 +37,7 @@ linux) ;; osx) - echo "Building carl on Mac OSX not used." + echo "Docker deployment on Mac OSX not used." exit 1 ;; @@ -44,4 +46,3 @@ osx) echo "Unsupported OS: $OS" exit 1 esac - diff --git a/travis/deploy_storm.sh b/travis/deploy_storm.sh deleted file mode 100755 index e1c41a3cd..000000000 --- a/travis/deploy_storm.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -x - -set -e - -OS=$TRAVIS_OS_NAME - -# Do not deploy if credentials are not given -if [ "${TRAVIS_SECURE_ENV_VARS}" == "false" ]; then - echo "WARNING: Not deploying as no credentials are given." - exit 0; -fi - -# Do not deploy for pull requests -if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then - exit 0; -fi - -case $OS in -linux) - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - # Deploy as debug/release - case "$CONFIG" in - *DebugTravis) - docker commit storm movesrwth/storm:travis-debug - docker push movesrwth/storm:travis-debug - ;; - *ReleaseTravis) - docker commit storm movesrwth/storm:travis - docker push movesrwth/storm:travis - ;; - *) - echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 - ;; - esac - ;; - -osx) - echo "Building Storm on Mac OSX not used." - exit 1 - ;; - -*) - # Unknown OS - echo "Unsupported OS: $OS" - exit 1 -esac - diff --git a/travis/generate_travis.py b/travis/generate_travis.py index 3ca733d24..4493a3686 100644 --- a/travis/generate_travis.py +++ b/travis/generate_travis.py @@ -1,38 +1,37 @@ # Generate .travis.yml automatically # Configuration for Linux -configs_linux = [ - # OS, compiler, build type - ("ubuntu-18.04", "gcc", "DefaultDebug"), - ("ubuntu-18.04", "gcc", "DefaultRelease"), - ("debian-9", "gcc", "DefaultDebug"), - ("debian-9", "gcc", "DefaultRelease"), - ("ubuntu-18.10", "gcc", "DefaultDebug"), - ("ubuntu-18.10", "gcc", "DefaultRelease"), - ("ubuntu-19.04", "gcc", "DefaultDebugTravis"), - ("ubuntu-19.04", "gcc", "DefaultReleaseTravis"), -] - -# Configurations for Mac -configs_mac = [ - # OS, compiler, build type -# ("osx", "clang", "DefaultDebug"), -# ("osx", "clang", "DefaultRelease"), +configs = [ + # OS, OS version, compiler, build type, task + ("ubuntu", "18.04", "gcc", "DefaultDebug", "Test"), + ("ubuntu", "18.04", "gcc", "DefaultRelease", "Test"), + ("debian", "9", "gcc", "DefaultDebug", "Test"), + ("debian", "9", "gcc", "DefaultRelease", "Test"), + ("ubuntu", "18.10", "gcc", "DefaultDebug", "Test"), + ("ubuntu", "18.10", "gcc", "DefaultRelease", "Test"), + ("ubuntu", "19.04", "gcc", "DefaultDebugTravis", "TestDocker"), + ("ubuntu", "19.04", "gcc", "DefaultReleaseTravis", "TestDockerDoxygen"), +# ("osx", "xcode9.3", "clang", "DefaultDebug", "Test"), +# ("osx", "xcode9.3", "clang", "DefaultRelease", "Test"), ] # Stages in travis -stages = [ +build_stages = [ ("Build (1st run)", "Build1"), ("Build (2nd run)", "Build2"), ("Build (3rd run)", "Build3"), ("Build (4th run)", "BuildLast"), - ("Test all", "TestAll"), + ("Tasks", "Tasks"), ] +def get_env_string(os, os_version, compiler, build_type, task): + if os == "osx": + return "CONFIG={} TASK={} COMPILER={} STL=libc++\n".format(build_type, task, compiler) + else: + return "CONFIG={} TASK={} LINUX={} COMPILER={}\n".format(build_type, task, "{}-{}".format(os, os_version), compiler) -if __name__ == "__main__": - allow_failures = [] +if __name__ == "__main__": s = "" # Initial config s += "#\n" @@ -43,7 +42,6 @@ if __name__ == "__main__": s += " - master\n" s += " - stable\n" s += "sudo: required\n" - s += "dist: trusty\n" s += "language: cpp\n" s += "\n" s += "git:\n" @@ -79,97 +77,80 @@ if __name__ == "__main__": s += " ###\n" s += " # Stage: Build Carl\n" s += " ###\n" - s += "\n" - for config in configs_linux: - linux = config[0] - compiler = config[1] - build_type = config[2] + for config in configs: + os, os_version, compiler, build_type, task = config + os_type = "osx" if os == "osx" else "linux" if "Travis" in build_type: - s += " # {} - {}\n".format(linux, build_type) + s += " # {}-{} - {}\n".format(os, os_version, build_type) buildConfig = "" buildConfig += " - stage: Build Carl\n" - buildConfig += " os: linux\n" + buildConfig += " os: {}\n".format(os_type) buildConfig += " compiler: {}\n".format(compiler) - buildConfig += " env: CONFIG={} LINUX={} COMPILER={}\n".format(build_type, linux, compiler) - buildConfig += " install:\n" - buildConfig += " - travis/install_linux.sh\n" + buildConfig += " env: {}".format(get_env_string(os, os_version, compiler, build_type, task)) buildConfig += " before_script:\n" buildConfig += ' - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode\n' buildConfig += " script:\n" buildConfig += " - travis/build_carl.sh\n" + buildConfig += " before_cache:\n" + buildConfig += " - docker cp carl:/opt/carl/. .\n" # Upload to DockerHub - buildConfig += " after_success:\n" - buildConfig += " - travis/deploy_carl.sh\n" + buildConfig += " deploy:\n" + buildConfig += " - provider: script\n" + buildConfig += " skip_cleanup: true\n" + buildConfig += " script: bash travis/deploy_docker.sh carl\n" s += buildConfig - # Generate all configurations - for stage in stages: + # Generate all build configurations + for stage in build_stages: s += "\n" s += " ###\n" s += " # Stage: {}\n".format(stage[0]) s += " ###\n" - s += "\n" - # Mac OS X - for config in configs_mac: - osx = config[0] - compiler = config[1] - build_type = config[2] - s += " # {} - {}\n".format(osx, build_type) + for config in configs: + os, os_version, compiler, build_type, task = config + os_type = "osx" if os == "osx" else "linux" + s += " # {}-{} - {}\n".format(os, os_version, build_type) buildConfig = "" buildConfig += " - stage: {}\n".format(stage[0]) - buildConfig += " os: osx\n" - buildConfig += " osx_image: xcode9.1\n" + buildConfig += " os: {}\n".format(os_type) + if os_type == "osx": + buildConfig += " osx_image: {}\n".format(os_version) buildConfig += " compiler: {}\n".format(compiler) - buildConfig += " env: CONFIG={} COMPILER={} STL=libc++\n".format(build_type, compiler) + buildConfig += " env: {}".format(get_env_string(os, os_version, compiler, build_type, task)) buildConfig += " install:\n" if stage[1] == "Build1": buildConfig += " - rm -rf build\n" - buildConfig += " - travis/install_osx.sh\n" + buildConfig += " - travis/skip_test.sh\n" + if os_type == "osx": + buildConfig += " - travis/install_osx.sh\n" buildConfig += " before_script:\n" buildConfig += ' - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode\n' buildConfig += " script:\n" buildConfig += " - travis/build.sh {}\n".format(stage[1]) + if os_type == "linux": + buildConfig += " before_cache:\n" + buildConfig += " - docker cp storm:/opt/storm/. .\n" buildConfig += " after_failure:\n" buildConfig += " - find build -iname '*err*.log' -type f -print -exec cat {} \;\n" - s += buildConfig - # Linux via Docker - for config in configs_linux: - allow_fail = "" - linux = config[0] - compiler = config[1] - build_type = config[2] - s += " # {} - {}\n".format(linux, build_type) - buildConfig = "" - buildConfig += " - stage: {}\n".format(stage[0]) - allow_fail += " - stage: {}\n".format(stage[0]) - buildConfig += " os: linux\n" - allow_fail += " os: linux\n" - buildConfig += " compiler: {}\n".format(compiler) - buildConfig += " env: CONFIG={} LINUX={} COMPILER={}\n".format(build_type, linux, compiler) - allow_fail += " env: CONFIG={} LINUX={} COMPILER={}\n".format(build_type, linux, compiler) - buildConfig += " install:\n" - if stage[1] == "Build1": - buildConfig += " - rm -rf build\n" - buildConfig += " - travis/install_linux.sh\n" - buildConfig += " before_script:\n" - buildConfig += ' - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # Workaround for nonblocking mode\n' - buildConfig += " script:\n" - buildConfig += " - travis/build.sh {}\n".format(stage[1]) - buildConfig += " before_cache:\n" - buildConfig += " - docker cp storm:/opt/storm/. .\n" - buildConfig += " after_failure:\n" - buildConfig += " - find build -iname '*err*.log' -type f -print -exec cat {} \;\n" - # Upload to DockerHub - if stage[1] == "TestAll" and "Travis" in build_type: - buildConfig += " after_success:\n" - buildConfig += " - travis/deploy_storm.sh\n" + # Deployment + if stage[1] == "Tasks": + if "Docker" in task or "Doxygen" in task: + buildConfig += " deploy:\n" + if "Docker" in task: + buildConfig += " - provider: script\n" + buildConfig += " skip_cleanup: true\n" + buildConfig += " script: bash travis/deploy_docker.sh storm\n" + if "Doxygen" in task: + buildConfig += " - provider: pages\n" + buildConfig += " skip_cleanup: true\n" + buildConfig += " github_token: $GITHUB_TOKEN\n" + buildConfig += " local_dir: build/doc/html/\n" + buildConfig += " repo: moves-rwth/storm-doc\n" + buildConfig += " target_branch: master\n" + buildConfig += " on:\n" + buildConfig += " branch: master\n" + s += buildConfig - if "Travis" in build_type and "Release" in build_type: - allow_failures.append(allow_fail) - if len(allow_failures) > 0: - s += " allow_failures:\n" - for fail in allow_failures: - s += fail print(s) diff --git a/travis/mtime_cache/globs.txt b/travis/mtime_cache/globs.txt index a09cba27a..07312cb3d 100644 --- a/travis/mtime_cache/globs.txt +++ b/travis/mtime_cache/globs.txt @@ -1,5 +1,8 @@ src/**/*.{%{cpp}} +src/**/*.{in} src/**/CMakeLists.txt CMakeLists.txt +*.{in} resources/3rdparty/**/*.{%{cpp}} resources/3rdparty/eigen-3.3-beta1/StormEigen/**/* +resources/3rdparty/eigen-3.3-beta1/unsupported/**/* diff --git a/travis/install_linux.sh b/travis/skip_test.sh similarity index 60% rename from travis/install_linux.sh rename to travis/skip_test.sh index 62a7d75f6..416850102 100755 --- a/travis/install_linux.sh +++ b/travis/skip_test.sh @@ -1,11 +1,6 @@ #!/bin/bash - -set -e - # Skip this run? if [ -f build/skip.txt ] then exit 0 fi - -#sudo apt-get install -qq -y docker