-
Notifications
You must be signed in to change notification settings - Fork 163
/
.travis.yml
160 lines (148 loc) · 5.66 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# This is the http://travis-ci.org configuration file for Natron
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
- secure: "Ss+/N7eLl1cnXRP+XmXuBuuMXTZ/0TUgiGxBJMYGVTmwG2tDDAfhsUh5laeb/OE7dNxwLK5uLeb/XXI4AlP6W7tfquIAAq6/PhKIiRTXDgU6Sfa5voHiM8ni1x9rBtmaOk6/8QjWWSisrQmy9DmxRfYtP2i/sKkpIcJHCs5OCpo="
# Coverity run condition (avoid matrix multiple runs), need customized
# build script. Need an update if new matrix cases.
- coverity_scan_run_condition='"$CC" = gcc -a "$TRAVIS_OS_NAME" != osx'
# Coverity script test mode (if true no uploading, avoid reaching the quota)
# usual processing: false.
- coverity_scan_script_test_mode=false
language: cpp
python:
- "2.7"
addons:
apt:
sources:
# Natron requires boost >= 1.49 to compile in C++11 mode
# see http://stackoverflow.com/questions/11302758/error-while-copy-constructing-boostshared-ptr-using-c11
# we use the ppa:boost-latest/ppa for that purpose (boost 1.55)
# (ppa:afrank/boost offers 1.57, but is not whitelisted)
- boost-latest
# kubuntu-ppa/backports contains OpenCV
- kubuntu-backports
# the PPA xorg-edgers contains cairo 1.12 (required for rotoscoping)
# NOT WHITELISTED https://github.com/travis-ci/apt-source-whitelist/issues/181
# (ppa:ricotz/testing contains cairo 1.14, but only for trusty)
- sourceline: 'ppa:xorg-edgers/ppa'
# ubuntu-toolchain-r/test contains recent versions of gcc
- ubuntu-toolchain-r-test
# get a recent ffmpeg (>=2.5) for precise from ppa:archivematica/externals(2.5.1) or ppa:pavlyshko/precise(2.6.1) or ppa:spvkgn/ffmpeg-dev(2.8.6)
# NOT WHITELISTED
#- sourceline: 'ppa:spvkgn/ffmpeg-dev'
# this one is for trusty ffmpeg
- sourceline: 'ppa:jonathonf/ffmpeg-3'
- kalakris-cmake
- pythonxy-devel
packages:
- gcc-4.9
- g++-4.9
- libqt4-dev
- libqt4-opengl-dev
- libglew-dev
- libboost1.55-dev
- libboost-math1.55-dev
- libboost-serialization1.55-dev
- libboost-filesystem1.55-dev
- libboost-regex1.55-dev
- libboost-thread1.55-dev
- libboost-system1.55-dev
- libexpat1-dev
- gdb
- libcairo2-dev
- python-dev
- python-pyside
- libpyside-dev
- libshiboken-dev
# packages for building openfx-io:
#- libavcodec-dev
#- libavformat-dev
#- libswscale-dev
#- libavutil-dev
#- libswresample-dev
- libtinyxml-dev
- liblcms2-dev
- libyaml-cpp-dev
- libopenexr-dev
- libilmbase-dev
- libopenjpeg-dev
- libtiff4-dev
- libjpeg-dev
- libpng-dev
- libwebp-dev
- libraw-dev
- libfreetype6-dev
- libssl-dev
coverity_scan:
# customized build script URL
# TRAVIS_REPO_SLUG: owner_name/repo_name of repository currently being built
# TRAVIS_BRANCH: name of the branch currently being built
build_script_url: https://raw.githubusercontent.com/$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH/.travis-coverity-scan-build.sh
# project metadata
project:
name: $TRAVIS_REPO_SLUG
# Where email notification of build analysis results will be sent
notification_email: [email protected]
# Commands to prepare for build_command
#build_command_prepend: ./configure
# This command will be added as an argument to "cov-build" to compile
# the project for analysis
build_command: "tools/travis/build.sh"
# Pattern to match selecting branches that will run analysis
branch_pattern: coverity_scan
matrix:
include:
- os: linux
dist: trusty
sudo: required
compiler: gcc
- os: linux
dist: trusty
sudo: required
compiler: clang
- os: osx
# see https://docs.travis-ci.com/user/osx-ci-environment/
# we use macOS 10.12 to get the precompiled pyside bottles from
# https://github.com/cartr/homebrew-qt4
osx_image: xcode8.2
compiler: clang
exclude:
- os: osx
compiler: gcc
allow_failures:
- os: osx # we exceed the time limit
fast_finish: true
cache:
apt: true
# directories:
# - /usr/local/Cellar
# Travis CI has 1.5 cores per VM, take advantage of it
before_install:
- date -u
- uname -a
- export J='-j2'
install:
- . tools/travis/coverity_env.sh
- if [[ ${COVERITY_BUILD_DISABLED} == 1 ]];
then
exit 0;
fi
- tools/travis/install_dependencies.sh
- curl -k -L https://github.com/MrKepzie/OpenColorIO-Configs/archive/Natron-v2.1.tar.gz | tar zxf -
- mv OpenColorIO-Configs-Natron-v2.1 OpenColorIO-Configs
# OSX build will timeout if we redirect its output
#> install_dependencies.log 2>&1
script:
- if [[ ${COVERITY_SCAN_BRANCH} == 1 ]];
then
echo "Don't build on coverity_scan branch.";
exit 0;
fi
- tools/travis/build.sh
after_success:
- if [ "$CC" = "gcc" -a "$TRAVIS_OS_NAME" == "linux" ]; then ln -s Tests/google-mock Tests/google-test .; cd Tests; gcov -lp *.gcno > /dev/null; cd ..; coveralls -n --exclude /usr/include --exclude 'Tests/google-test' --exclude 'Tests/google-mock' --exclude 'google-test' --exclude 'google-mock' --exclude 'libs/OpenFX' --exclude-pattern '.*/moc_.*\.cpp' --exclude-pattern='.*/Tests/.*\.cpp' --exclude-pattern='.*/Tests/.*\.h'; fi
# - if [ "$CC" = "gcc" -a "$TRAVIS_OS_NAME" == "linux" ]; then ln -s Tests/google-mock Tests/google-test .; coveralls --exclude /usr/include --exclude 'Tests/google-test' --exclude 'Tests/google-mock' --exclude 'google-test' --exclude 'google-mock' --exclude 'libs/OpenFX' --exclude-pattern '.*/moc_.*\.cpp' --exclude-pattern='.*/Tests/.*\.cpp' --exclude-pattern='.*/Tests/.*\.h' --gcov-options '\-lp'; fi
after_failure:
- cat install_dependencies.log || true