summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 52f853ef83f89a6bbfa9cdf370b5d35b6048f6bb (plain)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
language: c++

matrix:
  include:
    - os: linux
      dist: xenial
      sudo: required
      compiler: gcc
    - os: osx
      compiler: clang

git:
  depth: 1

services:
  # Virtual X is needed for analyzer waveform tests
  - xvfb

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gdb
      - libavformat-dev
      - libchromaprint-dev
      - libfaad-dev
      - libflac-dev
      - libid3tag0-dev
      - liblilv-dev
      - libmad0-dev
      - libmodplug-dev
      - libmp3lame-dev
      - libmp4v2-dev
      - libopusfile-dev
      - libportmidi-dev
      - libprotobuf-dev
      - libqt5opengl5-dev
      - libqt5sql5-sqlite
      - libqt5svg5-dev
      - libqt5x11extras5-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
      - qtkeychain-dev
      - scons
  homebrew:
    update: true
    packages:
      - chromaprint
      - faad2
      - ffmpeg
      - flac
      - lame
      - libsndfile
      - libogg libvorbis
      - libshout
      - libmodplug
      - libid3tag
      - libmad
      - lilv
      - mp4v2
      - opusfile
      - portaudio
      - portmidi
      - protobuf
      - qt
      - rubberband
      - scons
      - sound-touch
      - taglib
      - wavpack

install:
  ####
  # Common build prerequisites

  # 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 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.
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export EXTRA_FLAGS="ffmpeg=1 optimize=none asan=0 localecompare=0" ; fi

  ####
  # Common build
  - scons $COMMON $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:
    - https://mixxx.zulipchat.com/api/v1/external/travis?stream=travis&topic=build-status&api_key=$ZULIP_API_KEY