aboutsummaryrefslogtreecommitdiffhomepage
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml159
1 files changed, 66 insertions, 93 deletions
diff --git a/.travis.yml b/.travis.yml
index bdaf63a..d7c25b6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,17 @@
language: c
-# Use the latest Travis images since they are more up to date than the stable release.
group: edge
+os: linux
+dist: bionic
before_script:
- export -f travis_fold
script:
- - "bash -ex .travis-ci.sh"
+ - "bash .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
@@ -22,7 +21,9 @@ addons:
- libola-dev
- libjack-jackd2-dev
- liblua5.3-dev
+ - python3-dev
- libssl-dev
+ - lintian
packages: &core_build_gpp_latest
- *core_build
- gcc-8
@@ -33,49 +34,35 @@ addons:
packages: &core_build_windows
- *core_build
- mingw-w64
+ packages: &linters
+ - python3
+ - python3-pip
+ - lintian
+ - codespell
+ - shellcheck
+ - cloc
-
-matrix:
+jobs:
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
+ dist: bionic
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
+ dist: bionic
compiler: gcc
env: TASK='compile'
addons:
apt:
packages:
- *core_build_gpp_latest
- sources:
- - ubuntu-toolchain-r-test
- os: linux
- dist: xenial
+ dist: bionic
compiler: mingw32-gcc
env:
- TASK='windows'
@@ -84,66 +71,50 @@ matrix:
apt:
packages:
- *core_build_windows
- sources:
- - ubuntu-toolchain-r-test
- os: linux
- dist: xenial
+ dist: bionic
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
+ - os: osx
+ osx_image: xcode10.2
+ compiler: clang
+ env:
+ - TASK='compile'
+ - os: osx
+ osx_image: xcode10.2
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
+ env:
+ - TASK='compile'
+ - os: osx
+ osx_image: xcode10.2
+ compiler: clang
+ env:
+ - TASK='sanitize'
- os: linux
- dist: xenial
- env: TASK='spellintian-duplicates'
+ dist: bionic
+ env: TASK='codesmell'
addons:
apt:
packages:
- - *core_build
- - moreutils
+ - *linters
- os: linux
- dist: xenial
- env: TASK='codespell'
+ dist: bionic
+ env: TASK='spellcheck'
addons:
apt:
packages:
- - *core_build
- - moreutils
+ - *linters
allow_failures:
- os: linux
- dist: xenial
- compiler: gcc
- env: TASK='coverity'
- - os: linux
- dist: xenial
- env: TASK='spellintian-duplicates'
+ dist: bionic
+ env: TASK='codesmell'
- os: linux
- dist: xenial
- env: TASK='codespell'
+ dist: bionic
+ env: TASK='spellcheck'
env:
global:
@@ -151,21 +122,6 @@ env:
- 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
@@ -175,19 +131,19 @@ 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:
+# Travis clones with --branch, which omits tags. Since we use them for the version string at build time, fetch them
+ - git pull --tags
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache ola lua openssl jack; fi
+# 'brew install' sometimes returns non-zero for some arcane reason. Executing 'true' resets the exit code and allows Travis to continue building...
+# Travis seems to have Python 2.7 installed by default, which for some reason prevents pkg-config from reading python3.pc
+ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ccache ola lua openssl jack python3; brew link --overwrite python; true; 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
@@ -195,7 +151,24 @@ before_install:
- $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
+# Download libraries to link with on Windows
+ - if [ "$TASK" == "windows" ]; then mkdir libs; wget "https://downloads.sourceforge.net/project/luabinaries/5.3.5/Windows%20Libraries/Dynamic/lua-5.3.5_Win64_dllw6_lib.zip" -O lua53.zip; unzip lua53.zip lua53.dll; mv lua53.dll libs; fi
+
+notifications:
+ irc:
+ channels:
+ - "irc.hackint.org#midimonster"
+ on_success: change # default: always
+ on_failure: always # default: always
+ nick: mm_ci
+ use_notice: true
-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
+deploy:
+ provider: releases
+ file_glob: true
+ token: $GITHUB_TOKEN
+ file: ./deployment/*
+ skip_cleanup: true
+ draft: true
+ on:
+ tags: true