committed by
							
								 Matthias Volk
								Matthias Volk
							
						
					
				
				 13 changed files with 1 additions and 1446 deletions
			
			
		- 
					2.gitignore
- 
					591.travis.yml
- 
					2doc/checklist_new_release.md
- 
					87travis/build.sh
- 
					41travis/build_carl.sh
- 
					89travis/build_carl_helper.sh
- 
					174travis/build_helper.sh
- 
					48travis/deploy_docker.sh
- 
					155travis/generate_travis.py
- 
					66travis/install_osx.sh
- 
					8travis/mtime_cache/globs.txt
- 
					178travis/mtime_cache/mtime_cache.rb
- 
					6travis/skip_test.sh
| @ -1,591 +0,0 @@ | |||
| # | |||
| # General config | |||
| # | |||
| branches: | |||
|   only: | |||
|   - master | |||
|   - stable | |||
| sudo: required | |||
| language: cpp | |||
| 
 | |||
| git: | |||
|   depth: false | |||
| 
 | |||
| # Enable caching | |||
| cache: | |||
|   timeout: 1000 | |||
|   directories: | |||
|   - build | |||
|   - travis/mtime_cache | |||
| 
 | |||
| # Enable docker support | |||
| services: | |||
| - docker | |||
| 
 | |||
| notifications: | |||
|   email: | |||
|     on_failure: always | |||
|     on_success: change | |||
|     recipients: | |||
|     - secure: "VWnsiQkt1xjgRo1hfNiNQqvLSr0fshFmLV7jJlUixhCr094mgD0U2bNKdUfebm28Byg9UyDYPbOFDC0sx7KydKiL1q7FKKXkyZH0k04wUu8XiNw+fYkDpmPnQs7G2n8oJ/GFJnr1Wp/1KI3qX5LX3xot4cJfx1I5iFC2O+p+ng6v/oSX+pewlMv4i7KL16ftHHHMo80N694v3g4B2NByn4GU2/bjVQcqlBp/TiVaUa5Nqu9DxZi/n9CJqGEaRHOblWyMO3EyTZsn45BNSWeQ3DtnMwZ73rlIr9CaEgCeuArc6RGghUAVqRI5ao+N5apekIaILwTgL6AJn+Lw/+NRPa8xclgd0rKqUQJMJCDZKjKz2lmIs3bxfELOizxJ3FJQ5R95FAxeAZ6rb/j40YqVVTw2IMBDnEE0J5ZmpUYNUtPti/Adf6GD9Fb2y8sLo0XDJzkI8OxYhfgjSy5KYmRj8O5MXcP2MAE8LQauNO3MaFnL9VMVOTZePJrPozQUgM021uyahf960+QNI06Uqlmg+PwWkSdllQlxHHplOgW7zClFhtSUpnJxcsUBzgg4kVg80gXUwAQkaDi7A9Wh2bs+TvMlmHzBwg+2SaAfWDgjeJIeOaipDkF1uSGzC+EHAiiKYMLd4Aahoi8SuelJUucoyJyLAq00WdUFQIh/izVhM4Y=" | |||
| 
 | |||
| # | |||
| # Configurations | |||
| # | |||
| jobs: | |||
|   include: | |||
| 
 | |||
|     ### | |||
|     # Stage: Build Carl | |||
|     ### | |||
|     # ubuntu-20.04 - DefaultDebugTravis | |||
|     - stage: Build Carl | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-20.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 | |||
|       before_cache: | |||
|         - docker cp carl:/opt/carl/. . | |||
|       deploy: | |||
|         - provider: script | |||
|           skip_cleanup: true | |||
|           script: bash travis/deploy_docker.sh carl | |||
|     # ubuntu-20.04 - DefaultReleaseTravis | |||
|     - stage: Build Carl | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-20.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 | |||
|       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 TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-18.04 - DefaultRelease | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultDebug | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultRelease | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultDebug | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultRelease | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultDebugTravis | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultReleaseTravis | |||
|     - stage: Build (1st run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - rm -rf build | |||
|         - 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 Build1 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
| 
 | |||
|     ### | |||
|     # Stage: Build (2nd run) | |||
|     ### | |||
|     # ubuntu-18.04 - DefaultDebug | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-18.04 - DefaultRelease | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultDebug | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultRelease | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultDebug | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultRelease | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultDebugTravis | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultReleaseTravis | |||
|     - stage: Build (2nd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Build2 | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
| 
 | |||
|     ### | |||
|     # Stage: Build (3rd run) | |||
|     ### | |||
|     # ubuntu-18.04 - DefaultDebug | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-18.04 - DefaultRelease | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultDebug | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultRelease | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultDebug | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultRelease | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultDebugTravis | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultReleaseTravis | |||
|     - stage: Build (3rd run) | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 BuildLast | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
| 
 | |||
|     ### | |||
|     # Stage: Tasks | |||
|     ### | |||
|     # ubuntu-18.04 - DefaultDebug | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 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: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=ubuntu-18.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultDebug | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-9 - DefaultRelease | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-9 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultDebug | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebug TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # debian-10 - DefaultRelease | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultRelease TASK=Test LINUX=debian-10 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|     # ubuntu-20.04 - DefaultDebugTravis | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultDebugTravis TASK=TestDocker LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|       deploy: | |||
|         - provider: script | |||
|           skip_cleanup: true | |||
|           script: bash travis/deploy_docker.sh storm | |||
|     # ubuntu-20.04 - DefaultReleaseTravis | |||
|     - stage: Tasks | |||
|       os: linux | |||
|       compiler: gcc | |||
|       env: CONFIG=DefaultReleaseTravis TASK=TestDockerDoxygen LINUX=ubuntu-20.04 COMPILER=gcc | |||
|       install: | |||
|         - 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 Tasks | |||
|       before_cache: | |||
|         - docker cp storm:/opt/storm/. . | |||
|       after_failure: | |||
|         - find build -iname '*err*.log' -type f -print -exec cat {} \; | |||
|       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 | |||
| 
 | |||
| @ -1,87 +0,0 @@ | |||
| #!/bin/bash -x | |||
| 
 | |||
| N_JOBS=2 | |||
| TIMEOUT_MAC=1600 | |||
| TIMEOUT_LINUX=2300 | |||
| 
 | |||
| OS=$TRAVIS_OS_NAME | |||
| 
 | |||
| EXITCODE=42 | |||
| 
 | |||
| # Skip this run? | |||
| if [ -f build/skip.txt ] | |||
| then | |||
|   # Remove flag s.t. tests will be executed | |||
|   if [[ "$1" == "BuildLast" ]] | |||
|   then | |||
|     rm build/skip.txt | |||
|   fi | |||
|   exit 0 | |||
| fi | |||
| 
 | |||
| case $OS in | |||
| linux) | |||
|     # Execute docker image on Linux | |||
|     # Stop previous session | |||
|     docker rm -f storm &>/dev/null | |||
|     # Run container | |||
|     set -e | |||
|     case "$CONFIG" in | |||
|     *DebugTravis) | |||
|         docker run -d -it --name storm --privileged movesrwth/carl:travis-debug | |||
|         ;; | |||
|     *ReleaseTravis) | |||
|         docker run -d -it --name storm --privileged movesrwth/carl:travis | |||
|         ;; | |||
|     *) | |||
|         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 graphviz | |||
|     fi | |||
|     # Copy local content into container | |||
|     docker exec storm mkdir /opt/storm | |||
|     docker cp . storm:/opt/storm | |||
|     set +e | |||
| 
 | |||
|     # Execute main process | |||
|     docker exec storm bash -c " | |||
|         export CONFIG=$CONFIG; | |||
|         export TASK=$TASK; | |||
|         export COMPILER=$COMPILER; | |||
|         export N_JOBS=$N_JOBS; | |||
|         export STLARG=; | |||
|         export OS=$OS; | |||
|         cd /opt/storm; | |||
|         timeout $TIMEOUT_LINUX ./travis/build_helper.sh $1" | |||
|     EXITCODE=$? | |||
|     ;; | |||
| 
 | |||
| osx) | |||
|     # Mac OSX | |||
|     STLARG="-stdlib=libc++" | |||
|     export CONFIG | |||
|     export TASK | |||
|     export COMPILER | |||
|     export N_JOBS | |||
|     export STLARG | |||
|     export OS | |||
|     gtimeout $TIMEOUT_MAC travis/build_helper.sh "$1" | |||
|     EXITCODE=$? | |||
|     ;; | |||
| 
 | |||
| *) | |||
|     # Unknown OS | |||
|     echo "Unsupported OS: $OS" | |||
|     exit 1 | |||
| esac | |||
| 
 | |||
| if [[ $EXITCODE == 124 ]] && [[ "$1" == Build* ]] && [[ "$1" != "BuildLast" ]] | |||
| then | |||
|     exit 0 | |||
| else | |||
|     exit $EXITCODE | |||
| fi | |||
| @ -1,41 +0,0 @@ | |||
| #!/bin/bash -x | |||
| 
 | |||
| N_JOBS=2 | |||
| TIMEOUT_LINUX=2300 | |||
| 
 | |||
| OS=$TRAVIS_OS_NAME | |||
| 
 | |||
| case $OS in | |||
| linux) | |||
|     # Execute docker image on Linux | |||
|     # Stop previous session | |||
|     docker rm -f carl &>/dev/null | |||
|     # Run container | |||
|     set -e | |||
|     docker run -d -it --name carl --privileged movesrwth/storm-basesystem:$LINUX | |||
|     # Copy local content into container | |||
|     docker cp travis/build_carl_helper.sh carl:/opt/ | |||
|     set +e | |||
| 
 | |||
|     # Execute main process | |||
|     docker exec carl bash -c " | |||
|         export CONFIG=$CONFIG; | |||
|         export COMPILER=$COMPILER; | |||
|         export N_JOBS=$N_JOBS; | |||
|         export STLARG=; | |||
|         export OS=$OS; | |||
|         cd /opt/; | |||
|         timeout $TIMEOUT_LINUX ./build_carl_helper.sh" | |||
|     ;; | |||
| 
 | |||
| osx) | |||
|     echo "Building carl on Mac OSX not used." | |||
|     exit 1 | |||
|     ;; | |||
| 
 | |||
| *) | |||
|     # Unknown OS | |||
|     echo "Unsupported OS: $OS" | |||
|     exit 1 | |||
| esac | |||
| 
 | |||
| @ -1,89 +0,0 @@ | |||
| #!/bin/bash | |||
| 
 | |||
| set -e | |||
| 
 | |||
| # Helper for travis folding | |||
| travis_fold() { | |||
|   local action=$1 | |||
|   local name=$2 | |||
|   echo -en "travis_fold:${action}:${name}\r" | |||
| } | |||
| 
 | |||
| # Helper for building and testing | |||
| run() { | |||
|   travis_fold start install_dependencies | |||
|   apt-get update | |||
|   #apt-get install -qq -y openjdk-8-jdk maven uuid-dev pkg-config | |||
|   apt-get install -qq -y uuid-dev pkg-config | |||
|   travis_fold end install_dependencies | |||
| 
 | |||
|   travis_fold start install_carl | |||
|   git clone https://github.com/smtrat/carl.git | |||
|   cd carl | |||
|   git checkout master14 | |||
|   mkdir build | |||
|   cd build | |||
|   cmake .. "${CMAKE_ARGS[@]}" | |||
|   #make lib_carl addons -j$N_JOBS | |||
|   make lib_carl -j$N_JOBS | |||
|   travis_fold end install_carl | |||
| } | |||
| 
 | |||
| 
 | |||
| # 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" | |||
| 
 | |||
| case $COMPILER in | |||
| gcc-6) | |||
|     export CC=gcc-6 | |||
|     export CXX=g++-6 | |||
|     ;; | |||
| 
 | |||
| gcc) | |||
|     export CC=gcc | |||
|     export CXX=g++ | |||
|     ;; | |||
| 
 | |||
| clang-4) | |||
|     case "$OS" in | |||
|     linux) | |||
|         export CC=clang-4.0 | |||
|         export CXX=clang++-4.0 | |||
|         ;; | |||
|     osx) | |||
|         export CC=/usr/local/opt/llvm/bin/clang-4.0 | |||
|         export CXX=/usr/local/opt/llvm/bin/clang++ | |||
|         ;; | |||
|     *) echo "Error: unexpected OS: $OS"; exit 1 ;; | |||
|     esac | |||
|     ;; | |||
| 
 | |||
| clang) | |||
|     export CC=clang | |||
|     export CXX=clang++ | |||
|     ;; | |||
| 
 | |||
| *) | |||
|     echo "Unrecognized value of COMPILER: $COMPILER" | |||
|     exit 1 | |||
| esac | |||
| 
 | |||
| # Build | |||
| echo CXX version: $($CXX --version) | |||
| echo C++ Standard library location: $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1) | |||
| echo Normalized C++ Standard library location: $(readlink -f $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)) | |||
| 
 | |||
| case "$CONFIG" in | |||
| DefaultDebug*) | |||
|     CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="$STLARG" -DUSE_CLN_NUMBERS=ON -DUSE_GINAC=ON -DTHREAD_SAFE=ON -DBUILD_ADDONS=ON -DBUILD_ADDON_PARSER=ON) | |||
|     ;; | |||
| DefaultRelease*) | |||
|     CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="$STLARG" -DUSE_CLN_NUMBERS=ON -DUSE_GINAC=ON -DTHREAD_SAFE=ON -DBUILD_ADDONS=ON -DBUILD_ADDON_PARSER=ON) | |||
|     ;; | |||
| *) | |||
|     echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 | |||
|     ;; | |||
| esac | |||
| 
 | |||
| run | |||
| @ -1,174 +0,0 @@ | |||
| #!/bin/bash | |||
| 
 | |||
| set -e | |||
| 
 | |||
| # Helper for travis folding | |||
| travis_fold() { | |||
|   local action=$1 | |||
|   local name=$2 | |||
|   echo -en "travis_fold:${action}:${name}\r" | |||
| } | |||
| 
 | |||
| # Helper to write output every minute | |||
| function bell() { | |||
|   while true; do | |||
|     echo "travis_wait for it..." | |||
|     sleep 60 | |||
|   done | |||
| } | |||
| 
 | |||
| # Helper for distinguishing between different runs | |||
| run() { | |||
|   case "$1" in | |||
|   Build*) | |||
|     if [[ "$1" == "Build1" ]] | |||
|     then | |||
|         # CMake | |||
|         travis_fold start cmake | |||
|         mkdir build | |||
|         cd build | |||
|         cmake .. "${CMAKE_ARGS[@]}" | |||
|         echo | |||
|         if [ -f "CMakeFiles/CMakeError.log" ] | |||
|         then | |||
|           echo "Content of CMakeFiles/CMakeError.log:" | |||
|           cat CMakeFiles/CMakeError.log | |||
|         fi | |||
|         echo | |||
|         cd .. | |||
|         travis_fold end cmake | |||
|     fi | |||
| 
 | |||
|     # Make | |||
|     travis_fold start make | |||
|     cd build | |||
|     make -j$N_JOBS | |||
|     travis_fold end make | |||
|     # Set skip-file | |||
|     if [[ "$1" != "BuildLast" ]] | |||
|     then | |||
|         touch skip.txt | |||
|     else | |||
|         rm -rf skip.txt | |||
|     fi | |||
|     ;; | |||
| 
 | |||
|   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 | |||
|     ;; | |||
| 
 | |||
|   *) | |||
|     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" | |||
| 
 | |||
| case $COMPILER in | |||
| gcc-6) | |||
|     export CC=gcc-6 | |||
|     export CXX=g++-6 | |||
|     ;; | |||
| 
 | |||
| gcc) | |||
|     export CC=gcc | |||
|     export CXX=g++ | |||
|     ;; | |||
| 
 | |||
| clang-4) | |||
|     case "$OS" in | |||
|     linux) | |||
|         export CC=clang-4.0 | |||
|         export CXX=clang++-4.0 | |||
|         ;; | |||
|     osx) | |||
|         export CC=/usr/local/opt/llvm/bin/clang-4.0 | |||
|         export CXX=/usr/local/opt/llvm/bin/clang++ | |||
|         ;; | |||
|     *) echo "Error: unexpected OS: $OS"; exit 1 ;; | |||
|     esac | |||
|     ;; | |||
| 
 | |||
| clang) | |||
|     export CC=clang | |||
|     export CXX=clang++ | |||
|     ;; | |||
| 
 | |||
| *) | |||
|     echo "Unrecognized value of COMPILER: $COMPILER" | |||
|     exit 1 | |||
| esac | |||
| 
 | |||
| # Build | |||
| echo CXX version: $($CXX --version) | |||
| echo C++ Standard library location: $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1) | |||
| echo Normalized C++ Standard library location: $(readlink -f $(echo '#include <vector>' | $CXX -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)) | |||
| 
 | |||
| case "$CONFIG" in | |||
| DefaultDebug*) | |||
|     CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Debug -DSTORM_DEVELOPER=ON -DSTORM_PORTABLE=ON -DCMAKE_CXX_FLAGS="$STLARG") | |||
|     ;; | |||
| DefaultRelease*) | |||
|     CMAKE_ARGS=(-DCMAKE_BUILD_TYPE=Release -DSTORM_DEVELOPER=OFF -DSTORM_PORTABLE=ON -DCMAKE_CXX_FLAGS="$STLARG") | |||
|     ;; | |||
| *) | |||
|     echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 | |||
|     ;; | |||
| esac | |||
| 
 | |||
| # Restore timestamps of files | |||
| travis_fold start mtime | |||
| if [[ "$1" == "Build1" ]] | |||
| then | |||
|     # Remove old mtime cache | |||
|     rm -rf travis/mtime_cache/cache.json | |||
| fi | |||
| ruby travis/mtime_cache/mtime_cache.rb -g travis/mtime_cache/globs.txt -c travis/mtime_cache/cache.json | |||
| travis_fold end mtime | |||
| 
 | |||
| # Run and print output to avoid travis timeout | |||
| bell & | |||
| bellPID=$! | |||
| trap 'rc=$?; kill $bellPID; exit $rc' EXIT | |||
| run "$1" | |||
| 
 | |||
| @ -1,48 +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 | |||
| 
 | |||
| 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 $1 movesrwth/$1:travis-debug | |||
|         docker push movesrwth/$1:travis-debug | |||
|         ;; | |||
|     *ReleaseTravis) | |||
|         docker commit $1 movesrwth/$1:travis | |||
|         docker push movesrwth/$1:travis | |||
|         ;; | |||
|     *) | |||
|         echo "Unrecognized value of CONFIG: $CONFIG"; exit 1 | |||
|         ;; | |||
|     esac | |||
|     ;; | |||
| 
 | |||
| osx) | |||
|     echo "Docker deployment on Mac OSX not used." | |||
|     exit 1 | |||
|     ;; | |||
| 
 | |||
| *) | |||
|     # Unknown OS | |||
|     echo "Unsupported OS: $OS" | |||
|     exit 1 | |||
| esac | |||
| @ -1,155 +0,0 @@ | |||
| # Generate .travis.yml automatically | |||
| 
 | |||
| # Configuration for Linux | |||
| 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"), | |||
|     ("debian", "10", "gcc", "DefaultDebug", "Test"), | |||
|     ("debian", "10", "gcc", "DefaultRelease", "Test"), | |||
|     ("ubuntu", "20.04", "gcc", "DefaultDebugTravis", "TestDocker"), | |||
|     ("ubuntu", "20.04", "gcc", "DefaultReleaseTravis", "TestDockerDoxygen"), | |||
| #    ("osx", "xcode9.3", "clang", "DefaultDebug", "Test"), | |||
| #    ("osx", "xcode9.3", "clang", "DefaultRelease", "Test"), | |||
| ] | |||
| 
 | |||
| # Stages in travis | |||
| build_stages = [ | |||
|     ("Build (1st run)", "Build1"), | |||
|     ("Build (2nd run)", "Build2"), | |||
|     ("Build (3rd run)", "BuildLast"), | |||
|     ("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__": | |||
|     s = "" | |||
|     # Initial config | |||
|     s += "#\n" | |||
|     s += "# General config\n" | |||
|     s += "#\n" | |||
|     s += "branches:\n" | |||
|     s += "  only:\n" | |||
|     s += "  - master\n" | |||
|     s += "  - stable\n" | |||
|     s += "sudo: required\n" | |||
|     s += "language: cpp\n" | |||
|     s += "\n" | |||
|     s += "git:\n" | |||
|     s += "  depth: false\n" | |||
|     s += "\n" | |||
|     s += "# Enable caching\n" | |||
|     s += "cache:\n" | |||
|     s += "  timeout: 1000\n" | |||
|     s += "  directories:\n" | |||
|     s += "  - build\n" | |||
|     s += "  - travis/mtime_cache\n" | |||
|     s += "\n" | |||
|     s += "# Enable docker support\n" | |||
|     s += "services:\n" | |||
|     s += "- docker\n" | |||
|     s += "\n" | |||
| 
 | |||
|     s += "notifications:\n" | |||
|     s += "  email:\n" | |||
|     s += "    on_failure: always\n" | |||
|     s += "    on_success: change\n" | |||
|     s += "    recipients:\n" | |||
|     s += '    - secure: "VWnsiQkt1xjgRo1hfNiNQqvLSr0fshFmLV7jJlUixhCr094mgD0U2bNKdUfebm28Byg9UyDYPbOFDC0sx7KydKiL1q7FKKXkyZH0k04wUu8XiNw+fYkDpmPnQs7G2n8oJ/GFJnr1Wp/1KI3qX5LX3xot4cJfx1I5iFC2O+p+ng6v/oSX+pewlMv4i7KL16ftHHHMo80N694v3g4B2NByn4GU2/bjVQcqlBp/TiVaUa5Nqu9DxZi/n9CJqGEaRHOblWyMO3EyTZsn45BNSWeQ3DtnMwZ73rlIr9CaEgCeuArc6RGghUAVqRI5ao+N5apekIaILwTgL6AJn+Lw/+NRPa8xclgd0rKqUQJMJCDZKjKz2lmIs3bxfELOizxJ3FJQ5R95FAxeAZ6rb/j40YqVVTw2IMBDnEE0J5ZmpUYNUtPti/Adf6GD9Fb2y8sLo0XDJzkI8OxYhfgjSy5KYmRj8O5MXcP2MAE8LQauNO3MaFnL9VMVOTZePJrPozQUgM021uyahf960+QNI06Uqlmg+PwWkSdllQlxHHplOgW7zClFhtSUpnJxcsUBzgg4kVg80gXUwAQkaDi7A9Wh2bs+TvMlmHzBwg+2SaAfWDgjeJIeOaipDkF1uSGzC+EHAiiKYMLd4Aahoi8SuelJUucoyJyLAq00WdUFQIh/izVhM4Y="\n' | |||
|     s += "\n" | |||
|     s += "#\n" | |||
|     s += "# Configurations\n" | |||
|     s += "#\n" | |||
|     s += "jobs:\n" | |||
|     s += "  include:\n" | |||
| 
 | |||
|     # Start with prebuilding carl for docker | |||
|     s += "\n" | |||
|     s += "    ###\n" | |||
|     s += "    # Stage: Build Carl\n" | |||
|     s += "    ###\n" | |||
|     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(os, os_version, build_type) | |||
|             buildConfig = "" | |||
|             buildConfig += "    - stage: Build Carl\n" | |||
|             buildConfig += "      os: {}\n".format(os_type) | |||
|             buildConfig += "      compiler: {}\n".format(compiler) | |||
|             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 += "      deploy:\n" | |||
|             buildConfig += "        - provider: script\n" | |||
|             buildConfig += "          skip_cleanup: true\n" | |||
|             buildConfig += "          script: bash travis/deploy_docker.sh carl\n" | |||
|             s += buildConfig | |||
| 
 | |||
|     # Generate all build configurations | |||
|     for stage in build_stages: | |||
|         s += "\n" | |||
|         s += "    ###\n" | |||
|         s += "    # Stage: {}\n".format(stage[0]) | |||
|         s += "    ###\n" | |||
|         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: {}\n".format(os_type) | |||
|             if os_type == "osx": | |||
|                 buildConfig += "      osx_image: {}\n".format(os_version) | |||
|             buildConfig += "      compiler: {}\n".format(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/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" | |||
| 
 | |||
|             # 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 | |||
| 
 | |||
|     print(s) | |||
| @ -1,66 +0,0 @@ | |||
| #!/bin/bash | |||
| # Script installing dependencies | |||
| # Inspired by https://github.com/google/fruit | |||
| 
 | |||
| set -e | |||
| 
 | |||
| # Helper for travis folding | |||
| travis_fold() { | |||
|   local action=$1 | |||
|   local name=$2 | |||
|   echo -en "travis_fold:${action}:${name}\r" | |||
| } | |||
| 
 | |||
| # Helper for installing packages via homebrew | |||
| install_brew_package() { | |||
|   if brew list -1 | grep -q "^$1\$"; then | |||
|     # Package is installed, upgrade if needed | |||
|     brew outdated "$1" || brew upgrade "$@" | |||
|   else | |||
|     # Package not installed yet, install. | |||
|     brew install "$@" || brew link --overwrite "$@" | |||
|   fi | |||
| } | |||
| 
 | |||
| # Skip this run? | |||
| if [ -f build/skip.txt ] | |||
| then | |||
|   exit 0 | |||
| fi | |||
| 
 | |||
| # Update packages | |||
| travis_fold start brew_update | |||
| brew update | |||
| travis_fold end brew_update | |||
| 
 | |||
| travis_fold start brew_install_util | |||
| # For md5sum | |||
| install_brew_package md5sha1sum | |||
| # For `timeout' | |||
| install_brew_package coreutils | |||
| 
 | |||
| install_brew_package cmake | |||
| 
 | |||
| # Install compiler | |||
| case "${COMPILER}" in | |||
| gcc)         install_brew_package gcc ;; | |||
| gcc-6)       install_brew_package gcc@6 ;; | |||
| clang)       ;; | |||
| clang-4)     install_brew_package llvm@4 --with-clang --with-libcxx;; | |||
| *) echo "Compiler not supported: ${COMPILER}. See travis/install_osx.sh"; exit 1 ;; | |||
| esac | |||
| travis_fold end brew_install_util | |||
| 
 | |||
| 
 | |||
| # Install dependencies | |||
| travis_fold start brew_install_dependencies | |||
| install_brew_package gmp --c++11 | |||
| install_brew_package cln | |||
| install_brew_package ginac | |||
| install_brew_package doxygen | |||
| install_brew_package boost --c++11 | |||
| install_brew_package z3 # optional | |||
| install_brew_package glpk | |||
| install_brew_package hwloc | |||
| install_brew_package eigen | |||
| travis_fold end brew_install_dependencies | |||
| @ -1,8 +0,0 @@ | |||
| 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/**/* | |||
| @ -1,178 +0,0 @@ | |||
| #!/usr/bin/env ruby | |||
| 
 | |||
| # | |||
| # mtime_cache | |||
| # Copyright (c) 2016 Borislav Stanimirov | |||
| # | |||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| # of this software and associated documentation files (the "Software"), to | |||
| # deal in the Software without restriction, including without limitation the | |||
| # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | |||
| # sell copies of the Software, and to permit persons to whom the Software is | |||
| # furnished to do so, subject to the following conditions: | |||
| # | |||
| # The above copyright notice and this permission notice shall be included in | |||
| # all copies or substantial portions of the Software. | |||
| # | |||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |||
| # IN THE SOFTWARE. | |||
| # | |||
| 
 | |||
| require 'digest/md5' | |||
| require 'json' | |||
| require 'fileutils' | |||
| 
 | |||
| VERSION = "1.0.2" | |||
| 
 | |||
| VERSION_TEXT = "mtime_cache v#{VERSION}" | |||
| 
 | |||
| USAGE = <<ENDUSAGE | |||
| 
 | |||
| Usage: | |||
|     mtime_cache [<globs>] [-g globfile] [-d] [-q|V] [-c cache] | |||
| ENDUSAGE | |||
| 
 | |||
| HELP = <<ENDHELP | |||
| 
 | |||
|     Traverse through globbed files, making a json cache based on their mtime. | |||
|     If a cache exists, changes the mtime of existing unchanged (based on MD5 | |||
|     hash) files to the one in the cache. | |||
| 
 | |||
|     Options: | |||
| 
 | |||
|     globs           Ruby-compatible glob strings (ex some/path/**/*.java) | |||
|                     A extension pattern is allowd in the form %{pattern} | |||
|                     (ex some/path/*.{%{pattern1},%{pattern2}}) | |||
|                     The globs support the following patterns: | |||
|                      %{cpp} - common C++ extensions | |||
| 
 | |||
|     -g, --globfile  A file with list of globs to perform (one per line) | |||
| 
 | |||
|     -?, -h, --help  Show this help message. | |||
|     -v, --version   Show the version number (#{VERSION}) | |||
|     -q, --quiet     Don't log anything to stdout | |||
|     -V, --verbose   Show extra logging | |||
|     -d, --dryrun    Don't change any files on the filesystem | |||
|     -c, --cache     Specify the cache file for input and output. | |||
|                     [Default is .mtime_cache.json] | |||
| 
 | |||
| ENDHELP | |||
| 
 | |||
| param_arg = nil | |||
| ARGS = { :cache => '.mtime_cache.json', :globs => [] } | |||
| 
 | |||
| ARGV.each do |arg| | |||
|   case arg | |||
|     when '-g', '--globfile'   then param_arg = :globfile | |||
|     when '-h', '-?', '--help' then ARGS[:help] = true | |||
|     when '-v', '--version'    then ARGS[:ver] = true | |||
|     when '-q', '--quiet'      then ARGS[:quiet] = true | |||
|     when '-V', '--verbose'    then ARGS[:verbose] = true | |||
|     when '-d', '--dryrun'     then ARGS[:dry] = true | |||
|     when '-c', '--cache'      then param_arg = :cache | |||
|     else | |||
|       if param_arg | |||
|         ARGS[param_arg] = arg | |||
|         param_arg = nil | |||
|       else | |||
|         ARGS[:globs] << arg | |||
|       end | |||
|   end | |||
| end | |||
| 
 | |||
| def log(text, level = 0) | |||
|   return if ARGS[:quiet] | |||
|   return if level > 0 && !ARGS[:verbose] | |||
|   puts text | |||
| end | |||
| 
 | |||
| if ARGS[:ver] || ARGS[:help] | |||
|   log VERSION_TEXT | |||
|   exit if ARGS[:ver] | |||
|   log USAGE | |||
|   log HELP | |||
|   exit | |||
| end | |||
| 
 | |||
| if ARGS[:globs].empty? && !ARGS[:globfile] | |||
|   log 'Error: Missing globs' | |||
|   log USAGE | |||
|   exit 1 | |||
| end | |||
| 
 | |||
| EXTENSION_PATTERNS = { | |||
|   :cpp => "c,cc,cpp,cxx,h,hpp,hxx,inl,ipp,inc,ixx" | |||
| } | |||
| 
 | |||
| cache_file = ARGS[:cache] | |||
| 
 | |||
| cache = {} | |||
| 
 | |||
| if File.file?(cache_file) | |||
|   log "Found #{cache_file}" | |||
|   cache = JSON.parse(File.read(cache_file)) | |||
|   log "Read #{cache.length} entries" | |||
| else | |||
|   log "#{cache_file} not found. A new one will be created" | |||
| end | |||
| 
 | |||
| globs = ARGS[:globs].map { |g| g % EXTENSION_PATTERNS } | |||
| 
 | |||
| globfile = ARGS[:globfile] | |||
| if globfile | |||
|   File.open(globfile, 'r').each_line do |line| | |||
|     line.strip! | |||
|     next if line.empty? | |||
|     globs << line % EXTENSION_PATTERNS | |||
|   end | |||
| end | |||
| 
 | |||
| if globs.empty? | |||
|   log 'Error: No globs in globfile' | |||
|   log USAGE | |||
|   exit 1 | |||
| end | |||
| 
 | |||
| files = {} | |||
| num_changed = 0 | |||
| 
 | |||
| globs.each do |glob| | |||
|   Dir[glob].each do |file| | |||
|     next if !File.file?(file) | |||
| 
 | |||
|     mtime = File.mtime(file).to_i | |||
|     hash = Digest::MD5.hexdigest(File.read(file)) | |||
| 
 | |||
|     cached = cache[file] | |||
| 
 | |||
|     if cached && cached['hash'] == hash && cached['mtime'] < mtime | |||
|       mtime = cached['mtime'] | |||
| 
 | |||
|       log "mtime_cache: changing mtime of #{file} to #{mtime}", 1 | |||
| 
 | |||
|       File.utime(File.atime(file), Time.at(mtime), file) if !ARGS[:dry] | |||
|       num_changed += 1 | |||
|     else | |||
|       log "mtime_cache: NOT changing mtime of #{file}", 1 | |||
|     end | |||
| 
 | |||
|     files[file] = { 'mtime' => mtime, 'hash' => hash } | |||
|   end | |||
| end | |||
| 
 | |||
| log "Changed mtime of #{num_changed} of #{files.length} files" | |||
| log "Writing #{cache_file}" | |||
| 
 | |||
| if !ARGS[:dry] | |||
|   dirname = File.dirname(cache_file) | |||
|   unless File.directory?(dirname) | |||
|     FileUtils.mkdir_p(dirname) | |||
|   end | |||
|   File.open(cache_file, 'w').write(JSON.pretty_generate(files)) | |||
| end | |||
| 
 | |||
| @ -1,6 +0,0 @@ | |||
| #!/bin/bash | |||
| # Skip this run? | |||
| if [ -f build/skip.txt ] | |||
| then | |||
|   exit 0 | |||
| fi | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue