diff options
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 159 |
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 |