forked from mixxxdj/mixxx
-
Notifications
You must be signed in to change notification settings - Fork 4
/
.travis.yml
100 lines (89 loc) · 3.43 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
language: c++
matrix:
include:
# - os: linux
# dist: trusty
# sudo: required
# compiler: gcc
- os: osx
compiler: clang
# install dependencies
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gdb
- libavformat-dev
- libchromaprint-dev
- libfaad-dev
- libflac-dev
- libid3tag0-dev
- libmad0-dev
- libmodplug-dev
- libmp3lame-dev
- libmp4v2-dev
- libopusfile-dev
- libportmidi-dev
- libprotobuf-dev
- libqt5opengl5-dev
- libqt5sql5-sqlite
- libqt5svg5-dev
- librubberband-dev
- libshout3-dev
- libsndfile1-dev
- libsoundtouch-dev
- libsqlite3-dev
- libtag1-dev
- libupower-glib-dev
- libusb-1.0-0-dev
- libwavpack-dev
- portaudio19-dev
- protobuf-compiler
- qt5-default
- qtscript5-dev
- libqt5x11extras5-dev
- scons
- qtkeychain-dev
- liblilv-dev
before_install:
# Virtual X, needed for analyzer waveform tests
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0 ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh -e /etc/init.d/xvfb start ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install scons portaudio libsndfile libogg libvorbis portmidi taglib libshout protobuf flac ffmpeg qt chromaprint rubberband libmodplug libid3tag libmad mp4v2 faad2 wavpack opusfile lilv lame sound-touch; fi
install:
####
# Common
# 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.
- export COMMON="-j4 qt5=1 test=1 mad=1 faad=1 ffmpeg=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0"
#####
# Ubuntu Trusty Build
####
# OS X Build
# 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.
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export EXTRA_FLAGS="optimize=none asan=0 localecompare=0" ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export EXTRA_FLAGS="localecompare=1" ; fi
####
# Common Build
- scons $COMMON $EXTRA_FLAGS
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:
- https://mixxx.zulipchat.com/api/v1/external/travis?stream=travis&topic=build-status&api_key=$ZULIP_API_KEY