aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts/ci
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripts/ci')
-rw-r--r--src/scripts/ci/travis.yml132
1 files changed, 132 insertions, 0 deletions
diff --git a/src/scripts/ci/travis.yml b/src/scripts/ci/travis.yml
new file mode 100644
index 000000000..cdd5192b6
--- /dev/null
+++ b/src/scripts/ci/travis.yml
@@ -0,0 +1,132 @@
+language: cpp
+
+os:
+ - linux
+ - osx
+
+dist: trusty
+sudo: required
+osx_image: xcode8.2
+
+compiler:
+ - clang
+ - gcc
+
+env:
+ global:
+ - CCACHE_MAXSIZE=250M
+ - CCACHE_MAXFILES=2000
+ - CCACHE_COMPRESS=1
+ # SONAR_TOKEN for accessing the Sonar server
+ - secure: "VezRbHFg6kllV5WG06M3tG3aHJaC3xrMylJ6RCVbL+uz2JeralVCqV7eIk4fVb9cu83Li+weEa0AJj0wkxpIUJ+vUh5F65L6gSWSbgHP7muOSVsmnEc6KvX4n3av/ZGe4geSmsxqh2pd/2xI1h7KioGRhKeqaZIdjVgWgGJW2iQ="
+
+ matrix:
+ - BUILD_MODE="docs"
+ - BUILD_MODE="lint"
+ - BUILD_MODE="mini-shared"
+ - BUILD_MODE="mini-static"
+ - BUILD_MODE="shared"
+ - BUILD_MODE="static"
+ - BUILD_MODE="bsi"
+ - BUILD_MODE="nist"
+ - BUILD_MODE="sanitizer"
+ - BUILD_MODE="cross-ppc32"
+ - BUILD_MODE="cross-ppc64"
+ - BUILD_MODE="cross-arm32"
+ - BUILD_MODE="cross-arm64"
+ - BUILD_MODE="cross-win32"
+ - BUILD_MODE="valgrind"
+ - BUILD_MODE="sonar"
+ - BUILD_MODE="coverage"
+ - BUILD_MODE="fuzzers"
+
+matrix:
+ # Ignore some problem builds for now
+ allow_failures:
+ - os: linux
+ env: BUILD_MODE="cross-win32"
+
+ exclude:
+ # Skip GCC on OS X entirely
+ - os: osx
+ compiler: gcc
+
+ # Run static, docs, lint, bsi, nist, fuzzers, coverage, valgrind,
+ # sonar, sanitizer, minimized and non-ARM cross builds only on Linux/gcc.
+ # The sanitizer builds under Clang run the tests very slowly and
+ # cause CI timeouts.
+
+ - compiler: clang
+ env: BUILD_MODE="static"
+ - compiler: clang
+ env: BUILD_MODE="bsi"
+ - compiler: clang
+ env: BUILD_MODE="nist"
+ - compiler: clang
+ env: BUILD_MODE="lint"
+ - compiler: clang
+ env: BUILD_MODE="docs"
+ - compiler: clang
+ env: BUILD_MODE="coverage"
+ - compiler: clang
+ env: BUILD_MODE="sonar"
+ - compiler: clang
+ env: BUILD_MODE="sanitizer"
+ - compiler: clang
+ env: BUILD_MODE="fuzzers"
+ - compiler: clang
+ env: BUILD_MODE="valgrind"
+ - compiler: clang
+ env: BUILD_MODE="mini-shared"
+ - compiler: clang
+ env: BUILD_MODE="mini-static"
+ - compiler: clang
+ env: BUILD_MODE="cross-win32"
+ - compiler: clang
+ env: BUILD_MODE="cross-ppc32"
+ - compiler: clang
+ env: BUILD_MODE="cross-ppc64"
+
+ # No ARM Clang compiler on Linux
+ - os: linux
+ compiler: clang
+ env: BUILD_MODE="cross-arm32"
+ - os: linux
+ compiler: clang
+ env: BUILD_MODE="cross-arm64"
+
+install:
+ - ./src/scripts/ci/setup_travis.sh
+
+script:
+ - if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then ./src/scripts/ci_build.py --os=$TRAVIS_OS_NAME --cc=$CC --cc-bin=$CXX $BUILD_MODE; fi
+
+# whitelist branches to avoid testing feature branches twice (as branch and as pull request)
+branches:
+ only:
+ - master
+ - release-2
+ - coverity_scan
+
+notifications:
+
+git:
+ depth: 5
+
+cache:
+ ccache: true
+ directories:
+ - $HOME/.sonar/cache
+
+addons:
+ sonarcloud: true
+
+ coverity_scan:
+ project:
+ name: "randombit/botan"
+ notification_email: [email protected]
+ build_command_prepend: "./configure.py --no-optimizations --with-zlib"
+ build_command: "make -j2"
+ branch_pattern: coverity_scan
+