diff --git a/.travis.yml b/.travis.yml index 20fffd5a5..cf6559d0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,66 +15,98 @@ matrix: ### # Ubuntu 16.10 ### - - compiler: gcc - env: TEST=DefaultDebug COMPILER=gcc-6 LINUX=ubuntu-16.10 + - stage: build_dep + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=ubuntu-16.10 install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; travis/install_linux.sh os: linux script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; - travis/postsubmit.sh DefaultDebug + travis/postsubmit.sh DefaultDebug BuildDep before_cache: docker cp storm:/storm/. . - - compiler: gcc - env: TEST=DefaultRelease COMPILER=gcc-6 LINUX=ubuntu-16.10 + - stage: build_lib + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=ubuntu-16.10 install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; travis/install_linux.sh os: linux script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; - travis/postsubmit.sh DefaultRelease + travis/postsubmit.sh DefaultDebug BuildLib before_cache: docker cp storm:/storm/. . - - ### - # Debian 9 - ### - - compiler: gcc - env: TEST=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 - install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; + - stage: build_all + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=ubuntu-16.10 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; travis/install_linux.sh os: linux - script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; - travis/postsubmit.sh DefaultDebug + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; + travis/postsubmit.sh DefaultDebug BuildAll before_cache: docker cp storm:/storm/. . - - compiler: gcc - env: TEST=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 - install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; + - stage: test_all + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=ubuntu-16.10 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; travis/install_linux.sh os: linux - script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; - travis/postsubmit.sh DefaultRelease + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; + travis/postsubmit.sh DefaultDebug TestAll before_cache: docker cp storm:/storm/. . +# - compiler: gcc +# env: TEST=DefaultRelease COMPILER=gcc-6 LINUX=ubuntu-16.10 +# install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; +# travis/install_linux.sh +# os: linux +# script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; +# travis/postsubmit.sh DefaultRelease +# before_cache: +# docker cp storm:/storm/. . + + ### + # Debian 9 + ### +# - compiler: gcc +# env: TEST=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 +# install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; +# travis/install_linux.sh +# os: linux +# script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; +# travis/postsubmit.sh DefaultDebug +# before_cache: +# docker cp storm:/storm/. . +# - compiler: gcc +# env: TEST=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 +# install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; +# travis/install_linux.sh +# os: linux +# script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9'; +# travis/postsubmit.sh DefaultRelease +# before_cache: +# docker cp storm:/storm/. . + ### # Mac OS X ### - - compiler: clang - env: TEST=DefaultDebug COMPILER=clang-4.0 STL=libc++ - install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; - travis/install_osx.sh - os: osx - osx_image: xcode8 - script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; - travis/postsubmit.sh DefaultDebug - - compiler: clang - env: TEST=DefaultRelease COMPILER=clang-4.0 STL=libc++ - install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; - travis/install_osx.sh - os: osx - osx_image: xcode8 - script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; - travis/postsubmit.sh DefaultRelease +# - compiler: clang +# env: TEST=DefaultDebug COMPILER=clang-4.0 STL=libc++ +# install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; +# travis/install_osx.sh +# os: osx +# osx_image: xcode8 +# script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; +# travis/postsubmit.sh DefaultDebug +# - compiler: clang +# env: TEST=DefaultRelease COMPILER=clang-4.0 STL=libc++ +# install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; +# travis/install_osx.sh +# os: osx +# osx_image: xcode8 +# script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++'; +# travis/postsubmit.sh DefaultRelease # Enable caching cache: diff --git a/travis/postsubmit-helper.sh b/travis/postsubmit-helper.sh index 1489fa636..18626ab15 100755 --- a/travis/postsubmit-helper.sh +++ b/travis/postsubmit-helper.sh @@ -10,6 +10,57 @@ travis_fold() { echo -en "travis_fold:${action}:${name}\r" } +# Helper for distinguishing between different runs +run() { + case "$1" in + BuildDep) + # CMake + travis_fold start cmake + mkdir -p build + cd build + cmake .. "${CMAKE_ARGS[@]}" + echo + echo "Content of CMakeFiles/CMakeError.log:" + if [ -f "CMakeFiles/CMakeError.log" ] + then + cat CMakeFiles/CMakeError.log + fi + echo + travis_fold end cmake + # Make resources + travis_fold start make_dep + make resources -j$N_JOBS + travis_fold end make_dep + ;; + + BuildLib) + # Make libstorm + travis_fold start make_lib + make storm -j$N_JOBS + travis_fold end make_lib + ;; + + BuildAll) + # Make all + travis_fold start make_all + make -j$N_JOBS + travis_fold end make_all + ;; + + TestAll) + # Test all + travis_fold start test_all + ctest test --output-on-failure + travis_fold end test_all + ;; + + *) + echo "Unrecognized value of run: $1" + exit 1 + esac +} + + # This only exists in OS X, but it doesn't cause issues in Linux (the dir doesn't exist, so it's # ignored). export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" @@ -105,28 +156,4 @@ travis_fold start mtime ruby travis/mtime_cache/mtime_cache.rb -g travis/mtime_cache/globs.txt -c travis/mtime_cache/cache.json travis_fold end mtime -# CMake -travis_fold start cmake -mkdir -p build -cd build -cmake .. "${CMAKE_ARGS[@]}" -echo -echo "Content of CMakeFiles/CMakeError.log:" -if [ -f "CMakeFiles/CMakeError.log" ] -then - cat CMakeFiles/CMakeError.log -fi -echo -travis_fold end cmake - -# Make -travis_fold start make -#make storm -j$N_JOBS -#make resources -j$N_JOBS -make -j$N_JOBS -travis_fold end make - -# Make -travis_fold start tests -ctest test --output-on-failure -travis_fold end tests +run "$2" diff --git a/travis/postsubmit.sh b/travis/postsubmit.sh index 547a251ed..7f5b7326b 100755 --- a/travis/postsubmit.sh +++ b/travis/postsubmit.sh @@ -29,7 +29,7 @@ linux) export STLARG=$STLARG; export OS=$OS; cd storm; - travis/postsubmit-helper.sh $1" + travis/postsubmit-helper.sh $1 $2" exit $? ;; @@ -39,7 +39,7 @@ osx) export N_JOBS export STLARG export OS - gtimeout $TIMEOUT travis/postsubmit-helper.sh "$1" + gtimeout $TIMEOUT travis/postsubmit-helper.sh "$1" "$2" exit $? ;;