diff options
author | Ferran Pujol Camins <ferranpujolcamins@gmail.com> | 2020-01-19 20:06:54 +0100 |
---|---|---|
committer | Ferran Pujol Camins <ferranpujolcamins@gmail.com> | 2020-01-19 20:06:54 +0100 |
commit | a17bdf8dc89763c74aadc794ac8574da11dc1d99 (patch) | |
tree | cd37a7f4682795079e55802c599b33949de1eb8d /.travis.yml | |
parent | 0f50ff623d4bd57c853355f55796146a3a632005 (diff) | |
parent | cc296d48de104773fe5c89c0f32421accf3fab6a (diff) |
Merge branch 'master' into migrate-to-QJSEngine
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 187 |
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: |