summaryrefslogtreecommitdiffstats
path: root/.travis.yml
diff options
context:
space:
mode:
authorFerran Pujol Camins <ferranpujolcamins@gmail.com>2020-01-19 20:06:54 +0100
committerFerran Pujol Camins <ferranpujolcamins@gmail.com>2020-01-19 20:06:54 +0100
commita17bdf8dc89763c74aadc794ac8574da11dc1d99 (patch)
treecd37a7f4682795079e55802c599b33949de1eb8d /.travis.yml
parent0f50ff623d4bd57c853355f55796146a3a632005 (diff)
parentcc296d48de104773fe5c89c0f32421accf3fab6a (diff)
Merge branch 'master' into migrate-to-QJSEngine
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml187
1 files changed, 143 insertions, 44 deletions
diff --git a/.travis.yml b/.travis.yml
index 70b9f9a34a..aeb9cceb9c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,152 @@
language: c++
-matrix:
+
+# Build flags common to OS X and Linux.
+# Parallel builds are important for avoiding OSX build timeouts.
+# We turn off verbose output to avoid going over the 4MB output limit.
+# TODO(2019-07-21): Add "ffmpeg=1" if FFmpeg 4.x becomes available in Ubuntu
+env:
+ global:
+ # For SCons builds
+ - SCONSFLAGS="test=1 mad=1 faad=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0"
+ # For CMake builds
+ - CMAKEFLAGS="-DMAD=ON -DFAAD=ON -DOPUS=ON -DMODPLUG=ON -DWAVPACK=ON -DHSS1394=OFF"
+ - GTEST_COLOR=1
+ - CTEST_OUTPUT_ON_FAILURE=1
+
+jobs:
include:
- - os: linux
+ - name: qsscheck
+ os: linux
+ dist: xenial
+ before_install:
+ - pip3 install tinycss
+ script:
+ - ./scripts/qsscheck.py .
+ addons:
+ apt:
+ packages:
+ - python3
+ - python3-pip
+ - python3-pyqt5
+ - python3-setuptools
+ - python3-wheel
+
+ - name: Ubuntu/gcc/SCons build
+ os: linux
dist: xenial
- sudo: required
compiler: gcc
- - os: osx
+ # Ubuntu Xenial build prerequisites
+ before_install:
+ - sudo apt-get install -y scons
+ install:
+ - scons -j "$(nproc)" localecompare=1
+ script:
+ # NOTE(sblaisot): 2018-01-02 removing gdb wrapper on linux due to a bug in
+ # return code in order to avoid having a successful build when a test fail.
+ # https://bugs.launchpad.net/mixxx/+bug/1699689
+ - ./mixxx-test
+
+ - name: Ubuntu/gcc/CMake build
+ os: linux
+ dist: xenial
+ compiler: gcc
+ cache: ccache
+ # Ubuntu Xenial build prerequisites
+ env: CMAKEFLAGS_EXTRA="-DLOCALECOMPARE=ON"
+ before_install:
+ - export CMAKE_BUILD_PARALLEL_LEVEL="$(nproc)"
+ - export CTEST_PARALLEL_LEVEL="$(nproc)"
+ - export PATH="$HOME/.local/bin:$PATH"
+ - pip install --user cmake
+ - cmake --version
+ - ccache -s
+ install:
+ - mkdir cmake_build
+ - cd cmake_build
+ - cmake -L $CMAKEFLAGS $CMAKEFLAGS_EXTRA ..
+ - cmake --build .
+ - sudo env "PATH=$PATH" cmake --build . --target install
+ script:
+ # Run tests and benchmarks
+ - ctest
+ - cmake --build . --target benchmark
+
+ - name: OSX/clang/SCons build
+ os: osx
+ osx_image: xcode11
compiler: clang
+ cache:
+ directories:
+ - $HOME/Library/Caches/Homebrew
+ - /usr/local/Homebrew
+ # Workaround for bug in libopus's opus.h including <opus_multistream.h>
+ # instead of <opus/opus_multistream.h>.
+ # Virtual X (Xvfb) is needed for analyzer waveform tests
+ env: >-
+ CFLAGS="-isystem /usr/local/include/opus"
+ CXXFLAGS="-isystem /usr/local/include/opus"
+ DISPLAY=:99.0
+ before_install:
+ - brew install scons
+ - export QTDIR="$(find /usr/local/Cellar/qt -d 1 | tail -n 1)"
+ - echo "QTDIR=$QTDIR"
+ install:
+ # We are hardcoding 4 threads here since "$(sysctl -n hw.ncpu)" only
+ # returns 2 and makes the travis job run into a timeout:
+ # https://docs.travis-ci.com/user/reference/overview/#virtualization-environments
+ - scons -j4
+ script:
+ # lldb doesn't provide an easy way to exit 1 on error:
+ # https://bugs.llvm.org/show_bug.cgi?id=27326
+ - lldb ./mixxx-test --batch -o run -o quit -k 'thread backtrace all' -k "script import os; os._exit(1)"
+ before_cache:
+ # Avoid indefinite cache growth
+ - brew cleanup
+ # Cache only .git files under "/usr/local/Homebrew" so "brew update"
+ # does not take 5min every build
+ # Source: https://discourse.brew.sh/t/best-practice-for-homebrew-on-travis-brew-update-is-5min-to-build-time/5215/12
+ - find /usr/local/Homebrew \! -regex ".+\.git.+" -delete
+
+ - name: OSX/clang/CMake build
+ os: osx
+ osx_image: xcode11
+ compiler: clang
+ cache:
+ ccache: true
+ directories:
+ - $HOME/Library/Caches/Homebrew
+ - /usr/local/Homebrew
+ # Workaround for bug in libopus's opus.h including <opus_multistream.h>
+ # instead of <opus/opus_multistream.h>.
+ # Virtual X (Xvfb) is needed for analyzer waveform tests
+ env: >-
+ CMAKEFLAGS_EXTRA="-DLOCALECOMPARE=OFF -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/"
+ DISPLAY=:99.0
+ CMAKE_BUILD_PARALLEL_LEVEL=4
+ CTEST_PARALLEL_LEVEL=1
+ before_install:
+ - brew install ccache
+ - export PATH="/usr/local/opt/ccache/bin:$PATH"
+ - cmake --version
+ - ccache -s
+ install:
+ - mkdir cmake_build
+ - cd cmake_build
+ - cmake -L $CMAKEFLAGS $CMAKEFLAGS_EXTRA ..
+ - cmake --build .
+ - sudo cmake --build . --target install
+ script:
+ # Run tests and benchmarks
+ - ctest
+ - cmake --build . --target benchmark
+ before_cache:
+ # Avoid indefinite cache growth
+ - brew cleanup
+ # Cache only .git files under "/usr/local/Homebrew" so "brew update"
+ # does not take 5min every build
+ # Source: https://discourse.brew.sh/t/best-practice-for-homebrew-on-travis-brew-update-is-5min-to-build-time/5215/12
+ - find /usr/local/Homebrew \! -regex ".+\.git.+" -delete
git:
depth: 1
@@ -54,7 +193,6 @@ addons:
- qtdeclarative5-dev
- qtscript5-dev
- qt5keychain-dev
- - scons
homebrew:
update: true
packages:
@@ -78,49 +216,10 @@ addons:
- protobuf
- qt5
- rubberband
- - scons
- sound-touch
- taglib
- wavpack
-install:
- # Build flags common to OS X and Linux.
- # Parallel builds are important for avoiding OSX build timeouts.
- # We turn off verbose output to avoid going over the 4MB output limit.
- # TODO(2019-07-21): Add "ffmpeg=1" if FFmpeg 4.x becomes available in Ubuntu
- - export COMMON_FLAGS="-j4 test=1 mad=1 faad=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0"
-
- # Ubuntu Xenial build prerequisites
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export EXTRA_FLAGS="localecompare=1"; fi
-
- # Define QTDIR.
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export QTDIR=$(find /usr/local/Cellar/qt -d 1 | tail -n 1); fi
-
- # Workaround for bug in libopus's opus.h including <opus_multistream.h>
- # instead of <opus/opus_multistream.h>.
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export CXXFLAGS="-isystem /usr/local/include/opus"; fi
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export CFLAGS="-isystem /usr/local/include/opus"; fi
-
- # NOTE(rryan): 2016-11-15 we are experiencing Travis timeouts for the OSX
- # build. Turning off optimizations to see if that speeds up compile times.
- # TODO(rryan): localecompare doesn't work on Travis with qt5 for some reason.
- # TODO(2019-07-21): Move "ffmpeg=1" into COMMON_FLAGS if FFmpeg 4.x becomes available in Ubuntu
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export EXTRA_FLAGS="ffmpeg=1 optimize=none asan=0 localecompare=0"; fi
-
- - scons $COMMON_FLAGS $EXTRA_FLAGS
-
-before_script:
- # Virtual X (Xvfb) is needed for analyzer waveform tests
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0; fi
-
-script:
- # NOTE(sblaisot): 2018-01-02 removing gdb wrapper on linux due to a bug in
- # return code in order to avoid having a successful build when a test fail.
- # https://bugs.launchpad.net/mixxx/+bug/1699689
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then ./mixxx-test; fi
- # lldb doesn't provide an easy way to exit 1 on error:
- # https://bugs.llvm.org/show_bug.cgi?id=27326
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then lldb ./mixxx-test --batch -o run -o quit -k 'thread backtrace all' -k "script import os; os._exit(1)"; fi
notifications:
webhooks: