forked from Ableton/link
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
123 lines (108 loc) · 4.34 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Copyright (c) 2016 Ableton. All Rights Reserved.
language: cpp
sudo: required
dist: trusty
branches:
only:
- master
matrix:
include:
###########################################################################
# Build with the main configuration on all the supported compilers
###########################################################################
# Mac OS X / XCode 7.1, 64-bit Debug
- os: osx
env: WORDSIZE=64 CONFIGURATION=Debug
osx_image: xcode7.1
compiler: clang
# Mac OS X / XCode 7.1, 64-bit Release
- os: osx
env: WORDSIZE=64 CONFIGURATION=Release
osx_image: xcode7.1
compiler: clang
# Linux with Clang 3.6, 64-bit Debug
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['clang-3.6', 'g++-5', 'valgrind', 'p7zip-full', 'portaudio19-dev', 'cmake', 'cmake-data']
env: COMPILER=clang++-3.6 WORDSIZE=64 CONFIGURATION=Debug
# Linux with Clang 3.6, 64-bit Release
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['clang-3.6', 'g++-5', 'valgrind', 'p7zip-full', 'portaudio19-dev', 'cmake', 'cmake-data']
env: COMPILER=clang++-3.6 WORDSIZE=64 CONFIGURATION=Release
# Linux with GCC 5.x, 32-bit Release
# - os: linux
# compiler: gcc
# addons:
# apt:
# sources: ['ubuntu-toolchain-r-test']
# packages: ['g++-5', 'g++-5-multilib', 'linux-libc-dev:i386', 'valgrind:i386',
# 'p7zip-full', 'libxext-dev:i386', 'libglapi-mesa:i386',
# 'libgl1-mesa-glx:i386', 'libgl1-mesa-dev:i386',
# 'portaudio19-dev:i386', 'libglib2.0-0:i386', 'cmake', 'cmake-data']
# env: COMPILER=g++-5 WORDSIZE=32 CONFIGURATION=Release
# Linux with GCC 5.x, 64-bit Release
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'george-edison55-precise-backports']
packages: ['g++-5', 'valgrind', 'p7zip-full', 'portaudio19-dev', 'cmake', 'cmake-data']
env: COMPILER=g++-5 WORDSIZE=64 CONFIGURATION=Release
# Code formatting verification
- os: linux
compiler: clang
env: CONFIGURATION=Formatting LLVM_VERSION=3.8.0
before_install:
# Do indentation check
- |
if [ "$CONFIGURATION" = "Formatting" ]; then
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
echo deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main | sudo tee --append /etc/apt/sources.list
sudo apt-get update && sudo apt-get -y install clang-format-3.8
python ci/check-formatting.py -c $(which clang-format-3.8)
exit $?
fi
# Override Travis' CXX Flag
- CXX=$COMPILER
# Install homebrew packages for Mac OS X
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install cmake ninja qt5; fi
# Install QT for Linux manually, since the QT packages are not whitelisted by Travis
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then ./ci/install-qt-5.sh $WORDSIZE; fi
install:
- git submodule update --init --recursive
script:
- |
set -e
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
PATH=`brew --prefix qt5`/bin:${PATH}
python ci/configure.py --configuration $CONFIGURATION --generator Ninja --with-qt
python ci/build.py --configuration $CONFIGURATION --arguments "all -v"
else
if [ "$WORDSIZE" -eq 64 ]; then
PATH=$PWD/5.5/gcc_64:${PATH}
python ci/configure.py --configuration $CONFIGURATION --wordsize $WORDSIZE --with-qt
else
PATH=$PWD/5.5/gcc:${PATH}
python ci/configure.py --configuration $CONFIGURATION --wordsize $WORDSIZE --with-qt
fi
python ci/build.py --configuration $CONFIGURATION --arguments "VERBOSE=1 -j8"
fi
# Build Tests and run with Valgrind (Linux 64-bit only). Mac OSX supports
# valgrind via homebrew, but there is no bottle formula, so it must be
# compiled by brew and this takes way too much time on the build server.
- |
set -e
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
python ci/run-tests.py --target LinkCoreTest --valgrind
python ci/run-tests.py --target LinkDiscoveryTest --valgrind
else
python ci/run-tests.py --target LinkCoreTest
python ci/run-tests.py --target LinkDiscoveryTest
fi