diff options
author | cbdev <cb@cbcdn.com> | 2019-12-07 20:22:03 +0100 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2019-12-07 20:22:03 +0100 |
commit | f95dae04478b32fccaf7c6ebe1ecfd4e2fef1358 (patch) | |
tree | 6f545dc81166ee1a0f1b21b5245a70bcbf05751d /.travis.yml | |
parent | 534207d16314a4f6a69d36cf2305a3fe435a769b (diff) | |
parent | 1bb3b9a3eaf94af045c39a1ff1ee8bf9b8e5b8ec (diff) | |
download | midimonster-f95dae04478b32fccaf7c6ebe1ecfd4e2fef1358.tar.gz midimonster-f95dae04478b32fccaf7c6ebe1ecfd4e2fef1358.tar.bz2 midimonster-f95dae04478b32fccaf7c6ebe1ecfd4e2fef1358.zip |
Merge current master
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..bdaf63a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,201 @@ +language: c +# Use the latest Travis images since they are more up to date than the stable release. +group: edge + +before_script: + - export -f travis_fold + +script: + - "bash -ex .travis-ci.sh" + +addons: + apt: + packages: &base_build + # This is the absolute minimum for configure to pass + # Non C++ based tasks use it so they can run make builtfiles + - ccache + packages: &core_build + # This is all the bits we need to enable all options + - *base_build + - libasound2-dev + - libevdev-dev + - libola-dev + - libjack-jackd2-dev + - liblua5.3-dev + - libssl-dev + packages: &core_build_gpp_latest + - *core_build + - gcc-8 + - g++-8 + packages: &core_build_clang_latest + - *core_build + - clang-6.0 + packages: &core_build_windows + - *core_build + - mingw-w64 + + +matrix: + fast_finish: true + include: + - os: osx + osx_image: xcode10.2 + compiler: clang + env: + - TASK='compile' + - os: osx + osx_image: xcode10.2 + compiler: gcc + env: + - TASK='compile' + - os: osx + osx_image: xcode10.2 + compiler: clang + env: + - TASK='sanitize' + - os: linux + dist: xenial + compiler: clang + env: TASK='compile' + addons: + apt: + packages: + - *core_build_clang_latest + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-xenial-6.0 + - os: linux + dist: xenial + compiler: gcc + env: TASK='compile' + addons: + apt: + packages: + - *core_build_gpp_latest + sources: + - ubuntu-toolchain-r-test + - os: linux + dist: xenial + compiler: mingw32-gcc + env: + - TASK='windows' + - CC='x86_64-w64-mingw32-gcc' + addons: + apt: + packages: + - *core_build_windows + sources: + - ubuntu-toolchain-r-test + - os: linux + dist: xenial + compiler: clang + env: TASK='sanitize' + addons: + apt: + packages: + - *core_build_clang_latest + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-xenial-6.0 + - os: linux + dist: xenial + compiler: gcc + env: TASK='coverity' + addons: + apt: + packages: + # Coverity doesn't work with g++-5 or g++-6 yet + - *core_build + - gcc-4.9 + sources: + - ubuntu-toolchain-r-test + - os: linux + dist: xenial + env: TASK='spellintian' + addons: + apt: + packages: + - *core_build + - moreutils + - os: linux + dist: xenial + env: TASK='spellintian-duplicates' + addons: + apt: + packages: + - *core_build + - moreutils + - os: linux + dist: xenial + env: TASK='codespell' + addons: + apt: + packages: + - *core_build + - moreutils + allow_failures: + - os: linux + dist: xenial + compiler: gcc + env: TASK='coverity' + - os: linux + dist: xenial + env: TASK='spellintian-duplicates' + - os: linux + dist: xenial + env: TASK='codespell' + +env: + global: + # No colours in terminal (to reduce log file size) + - TERM=dumb + # Parallel make build + - MAKEFLAGS="-j 2" + # -- BEGIN Coverity Scan ENV + - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cov-configure --comptype gcc --compiler gcc-4.9 --template" + # The build command with all of the arguments that you would apply to a manual `cov-build` + # Usually this is the same as STANDARD_BUILD_COMMAND, excluding the automated test arguments + - COVERITY_SCAN_BUILD_COMMAND="make" + # Name of the project + - COVERITY_SCAN_PROJECT_NAME="$TRAVIS_REPO_SLUG" + # Email address for notifications related to this build + # - COVERITY_SCAN_NOTIFICATION_EMAIL="" + # Regular expression selects on which branches to run analysis + # Be aware of quotas. Do not run on every branch/commit + - COVERITY_SCAN_BRANCH_PATTERN=".*" + # COVERITY_SCAN_TOKEN via "travis encrypt" using the repo's public key + # - secure: "" + # -- END Coverity Scan ENV + +cache: + apt: true + directories: + - $HOME/.ccache # ccache cache + +before_cache: + - ccache -s # see how many hits ccache got + +install: + - if [ "$TASK" = "codespell" ]; then pip install --user git+https://github.com/codespell-project/codespell.git; fi + +before_install: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache ola lua openssl jack; fi +# OpenSSL is not a proper install due to some Apple bull, so provide additional locations via the environment... +# Additionally, newer versions of this "recipe" seem to use the name 'openssl@1.1' instead of plain 'openssl' and there seems to be +# no way to programmatically get the link and include paths. Genius! Hardcoding the new version for the time being... + - export CFLAGS="$CFLAGS -I/usr/local/opt/openssl@1.1/include" + - export LDFLAGS="$LDFLAGS -L/usr/local/opt/openssl@1.1/lib" + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then PATH=/usr/local/opt/ccache/libexec:$PATH; fi # Use ccache on Mac too +#Coverity doesn't work with g++ 5 or 6, so only upgrade to g++ 4.9 for that + - if [ "$TRAVIS_OS_NAME" == "linux" -a \( "$TASK" = "compile" -o "$TASK" = "sanitize" \) -a "$CC" = "gcc" ]; then export CC="ccache gcc-8"; export CXX="ccache g++-8"; fi +#Use the latest clang if we're compiling with clang + - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" = "clang" ]; then export CC="clang-6.0"; export CXX="clang-6.0"; fi +#Report the compiler versions + - $CC --version +#OS X uses something other than $CXX variable + - if [ "$TRAVIS_OS_NAME" == "linux" -a \( "$TASK" = "compile" -o "$TASK" = "sanitize" \) ]; then $CXX --version; fi + - if [ "$TASK" == "spellintian" -o "$TASK" == "spellintian-duplicates" ]; then wget "http://archive.ubuntu.com/ubuntu/pool/main/l/lintian/lintian_2.5.104_all.deb"; sudo dpkg -i lintian_*.deb; sudo apt-get install -f -y; fi # Install a later lintian + +after_script: + - if [ "$TASK" = "coverity" ]; then tail -n 10000 ${TRAVIS_BUILD_DIR}/cov-int/build-log.txt; cat ${TRAVIS_BUILD_DIR}/cov-int/scm_log.txt; fi |