From 7dc71ff12b03ed8ec247243aaa4ebc0435371b10 Mon Sep 17 00:00:00 2001 From: Matthias Volk Date: Mon, 15 May 2017 16:29:24 +0200 Subject: [PATCH] Generate travis file --- .travis.yml | 252 ++++++++++++++++++++++++++++---------- travis/generate_travis.py | 76 ++++++++++++ 2 files changed, 262 insertions(+), 66 deletions(-) create mode 100644 travis/generate_travis.py diff --git a/.travis.yml b/.travis.yml index cf6559d0b..0f8ebd6b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,98 +15,218 @@ matrix: ### # Ubuntu 16.10 ### - - stage: build_dep + - stage: Build dependencies + os: linux 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'; + 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 BuildDep - before_cache: + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultDebug BuildDep before_cache: docker cp storm:/storm/. . - - stage: build_lib + - stage: Build library + os: linux 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'; + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultDebug BuildLib before_cache: + docker cp storm:/storm/. . + - stage: Build all os: linux - script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; - travis/postsubmit.sh DefaultDebug BuildLib - before_cache: + 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 + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultDebug BuildAll before_cache: docker cp storm:/storm/. . - - stage: build_all + - stage: Test all + os: linux 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'; + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultDebug TestAll before_cache: + docker cp storm:/storm/. . + - stage: Build dependencies os: linux - script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; - travis/postsubmit.sh DefaultDebug BuildAll - before_cache: + compiler: gcc + env: BUILD=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 + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultRelease BuildDep before_cache: docker cp storm:/storm/. . - - stage: test_all + - stage: Build library + os: linux 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'; + env: BUILD=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 + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultRelease BuildLib before_cache: + docker cp storm:/storm/. . + - stage: Build all + os: linux + compiler: gcc + env: BUILD=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 + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultRelease BuildAll before_cache: + docker cp storm:/storm/. . + - stage: Test all os: linux - script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10'; - travis/postsubmit.sh DefaultDebug TestAll - before_cache: + compiler: gcc + env: BUILD=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 + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='ubuntu-16.10' + travis/postsubmit.sh DefaultRelease 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/. . + + - stage: Build dependencies + os: linux + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultDebug BuildDep before_cache: + docker cp storm:/storm/. . + - stage: Build library + os: linux + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultDebug BuildLib before_cache: + docker cp storm:/storm/. . + - stage: Build all + os: linux + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultDebug BuildAll before_cache: + docker cp storm:/storm/. . + - stage: Test all + os: linux + compiler: gcc + env: BUILD=DefaultDebug COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultDebug TestAll before_cache: + docker cp storm:/storm/. . + - stage: Build dependencies + os: linux + compiler: gcc + env: BUILD=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultRelease BuildDep before_cache: + docker cp storm:/storm/. . + - stage: Build library + os: linux + compiler: gcc + env: BUILD=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultRelease BuildLib before_cache: + docker cp storm:/storm/. . + - stage: Build all + os: linux + compiler: gcc + env: BUILD=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultRelease BuildAll before_cache: + docker cp storm:/storm/. . + - stage: Test all + os: linux + compiler: gcc + env: BUILD=DefaultRelease COMPILER=gcc-6 LINUX=debian-9 + install: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/install_linux.sh + script: export OS=linux; export COMPILER='gcc-6'; export LINUX='debian-9' + travis/postsubmit.sh DefaultRelease TestAll 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 + + - stage: Build dependencies + os: osx + compiler: clang + env: BUILD=DefaultDebug COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultDebug BuildDep - stage: Build library + os: osx + compiler: clang + env: BUILD=DefaultDebug COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultDebug BuildLib - stage: Build all + os: osx + compiler: clang + env: BUILD=DefaultDebug COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultDebug BuildAll - stage: Test all + os: osx + compiler: clang + env: BUILD=DefaultDebug COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultDebug TestAll - stage: Build dependencies + os: osx + compiler: clang + env: BUILD=DefaultRelease COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultRelease BuildDep - stage: Build library + os: osx + compiler: clang + env: BUILD=DefaultRelease COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultRelease BuildLib - stage: Build all + os: osx + compiler: clang + env: BUILD=DefaultRelease COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultRelease BuildAll - stage: Test all + os: osx + compiler: clang + env: BUILD=DefaultRelease COMPILER=clang-4.0 STL=libc++ + install: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/install_osx.sh + script: export OS=osx; export COMPILER='clang-4.0'; export STL='libc++' + travis/postsubmit.sh DefaultRelease TestAll + # Enable caching cache: diff --git a/travis/generate_travis.py b/travis/generate_travis.py new file mode 100644 index 000000000..3940d5916 --- /dev/null +++ b/travis/generate_travis.py @@ -0,0 +1,76 @@ + +# Configuration for Linux +configs_linux = [ + # OS, compiler + ("ubuntu-16.10", "gcc", "-6"), + ("debian-9", "gcc", "-6"), +] + +# Configurations for Mac +configs_mac = [ + # OS, compiler + ("osx", "clang", "-4.0"), +] + +# Build types +build_types = [ + "DefaultDebug", + "DefaultRelease", +] + +# Stages in travis +stages = [ + ("Build dependencies", "BuildDep"), + ("Build library", "BuildLib"), + ("Build all", "BuildAll"), + ("Test all", "TestAll"), +] + + +if __name__ == "__main__": + s = "" + + # Generate all configurations + # Linux via Docker + for config in configs_linux: + linux = config[0] + compiler = "{}{}".format(config[1], config[2]) + s += "\n" + s += " ###\n" + s += " # {}\n".format(linux) + s += " ###\n" + s += "\n" + for build in build_types: + for stage in stages: + s += " - stage: {}\n".format(stage[0]) + s += " os: linux\n" + s += " compiler: {}\n".format(config[1]) + s += " env: BUILD={} COMPILER={} LINUX={}\n".format(build, compiler, linux) + s += " install: export OS=linux; export COMPILER='{}'; export LINUX='{}'\n".format(compiler, linux) + s += " travis/install_linux.sh\n" + s += " script: export OS=linux; export COMPILER='{}'; export LINUX='{}'\n".format(compiler, linux) + s += " travis/postsubmit.sh {} {}".format(build, stage[1]) + s += " before_cache:\n" + s += " docker cp storm:/storm/. .\n" + + # Mac OS X + for config in configs_mac: + osx = config[0] + compiler = "{}{}".format(config[1], config[2]) + s += "\n" + s += " ###\n" + s += " # {}\n".format(osx) + s += " ###\n" + s += "\n" + for build in build_types: + for stage in stages: + s += " - stage: {}\n".format(stage[0]) + s += " os: osx\n" + s += " compiler: {}\n".format(config[1]) + s += " env: BUILD={} COMPILER={} STL=libc++\n".format(build, compiler) + s += " install: export OS=osx; export COMPILER='{}'; export STL='libc++'\n".format(compiler) + s += " travis/install_osx.sh\n" + s += " script: export OS=osx; export COMPILER='{}'; export STL='libc++'\n".format(compiler) + s += " travis/postsubmit.sh {} {}".format(build, stage[1]) + + print(s)