• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1language: c
2sudo: false
3branches:
4  only:
5  - master
6matrix:
7  include:
8    ###
9    ## Linux builds using various versions of GCC.
10    ###
11    - os: linux
12      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-7 CXX_COMPILER=g++-7
13      addons:
14        apt:
15          sources:
16          - ubuntu-toolchain-r-test
17          packages:
18          - gcc-7
19          - g++-7
20    - os: linux
21      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
22      addons:
23        apt:
24          sources:
25          - ubuntu-toolchain-r-test
26          packages:
27          - gcc-4.4
28          - g++-4.4
29
30    ###
31    ## Test that Autotools build works.
32    ###
33    - os: linux
34      env: BUILD_SYSTEM=autotools C_COMPILER=gcc-5 CXX_COMPILER=g++-5
35      addons:
36        apt:
37          sources:
38          - ubuntu-toolchain-r-test
39          packages:
40          - gcc-5
41          - g++-5
42
43    ###
44    ## Test that fuzzer is compiling / working.
45    ###
46    - os: linux
47      env: BUILD_SYSTEM=fuzz C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 ASAN_OPTIONS=detect_leaks=0
48      addons:
49        apt:
50          sources:
51          - ubuntu-toolchain-r-test
52          - llvm-toolchain-trusty-5.0
53          packages:
54          - clang-5.0
55
56    ###
57    ## clang on Linux
58    ###
59    - os: linux
60      env: BUILD_SYSTEM=cmake C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0
61      addons:
62        apt:
63          sources:
64          - llvm-toolchain-trusty-5.0
65          - ubuntu-toolchain-r-test
66          packages:
67          - clang-5.0
68    - os: linux
69      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5
70      addons:
71        apt:
72          sources:
73          - llvm-toolchain-trusty-3.5
74          - ubuntu-toolchain-r-test
75          packages:
76          - clang-3.5
77
78    ###
79    ## testing arm via qemu on Linux
80    ###
81    - os: linux
82      env: BUILD_SYSTEM=cmake C_COMPILER=arm-linux-gnueabihf-gcc CXX_COMPILER=arm-linux-gnueabihf-g++ CFLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=neon"
83      addons:
84        apt:
85          sources:
86          - ubuntu-toolchain-r-test
87          packages:
88          - qemu
89          - gcc-arm-linux-gnueabihf
90          - libc6-dev-armhf-cross
91
92    ###
93    ## PGI Community Edition on Linux
94    ###
95    - os: linux
96      env: BUILD_SYSTEM=cmake C_COMPILER=pgcc CXX_COMPILER=pgc++
97
98    ###
99    ## Python 2.7 and 3.6 builds on Linux
100    ###
101    - os: linux
102      language: python
103      python: 2.7
104      env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5
105      addons:
106        apt:
107          sources:
108          - ubuntu-toolchain-r-test
109          packages:
110          - gcc-5
111          - g++-5
112    - os: linux
113      language: python
114      python: 3.6
115      env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5
116      addons:
117        apt:
118          sources:
119          - ubuntu-toolchain-r-test
120          packages:
121          - gcc-5
122          - g++-5
123
124    ###
125    ## CMake on OS X
126    ##
127    ## These all work, but it seems unnecessary to actually build them
128    ## all since we already test all these versions of GCC on Linux.
129    ## We'll just test 4.4 and the most recent version.
130    ###
131    - os: osx
132      env: BUILD_SYSTEM=cmake C_COMPILER=gcc CXX_COMPILER=g++
133    - os: osx
134      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
135    - os: osx
136      env: BUILD_SYSTEM=cmake
137
138    ###
139    ## Python 2.7 OS X build (using the system /usr/bin/python)
140    ###
141    - os: osx
142      env: BUILD_SYSTEM=python C_COMPILER=gcc CXX_COMPILER=g++
143
144    ###
145    ## Sanitizers
146    ###
147    - os: linux
148      env: BUILD_SYSTEM=cmake C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 SANITIZER=address ASAN_OPTIONS=detect_leaks=0
149      addons:
150        apt:
151          sources:
152          - ubuntu-toolchain-r-test
153          - llvm-toolchain-trusty-5.0
154          packages:
155          - clang-5.0
156    - os: linux
157      env: BUILD_SYSTEM=cmake C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 SANITIZER=thread
158      addons:
159        apt:
160          sources:
161          - ubuntu-toolchain-r-test
162          - llvm-toolchain-trusty-5.0
163          packages:
164          - clang-5.0
165    - os: linux
166      env: BUILD_SYSTEM=cmake C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
167      addons:
168        apt:
169          sources:
170          - ubuntu-toolchain-r-test
171          - llvm-toolchain-trusty-5.0
172          packages:
173          - clang-5.0
174
175    - os: linux
176      env: BUILD_SYSTEM=maven
177      language: java
178
179    - os: linux
180      sudo: required
181      language: java
182      jdk: oraclejdk9
183      env: BUILD_SYSTEM=bazel
184      addons:
185        apt:
186          sources:
187            - sourceline: "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8"
188              key_url: "https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg"
189            - ubuntu-toolchain-r-test
190          packages:
191            - bazel
192
193    - os: osx
194      env: BUILD_SYSTEM=bazel
195      # Latest image with Java 1.8 (required to install Bazel).
196      osx_image: xcode9.3
197      language: java
198
199before_install:
200###
201## If we use the matrix to set CC/CXX Travis, overwrites the values,
202## so instead we use C/CXX_COMPILER, then copy the values to CC/CXX
203## here (after Travis has set CC/CXX).
204###
205- if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi
206- if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi
207- scripts/.travis.sh before_install
208install:
209- scripts/.travis.sh install
210script:
211- scripts/.travis.sh script
212after_success:
213- scripts/.travis.sh after_success
214
215before_deploy:
216- scripts/.travis.sh before_deploy
217
218deploy:
219- provider: bintray
220  file: "scripts/.bintray.json"
221  user: "eustas"
222  key:
223    secure: "Kbam/lTAdz72fZivbs6riJT+Y4PbuKP7r6t5PAWxJxAAykjwnYTRe3zF472g9HCE14KYMsdB+KSYSgg6TGJnqGC9gL9xhhGU9U/WmA+vbMWS/MSnMWpK9IRpp77pM2i2NKZD4v33JuEwKFCBJP3Vj6QQ5Qd1NKdobuXJyznhgnw="
224  on:
225    condition: "${BUILD_SYSTEM} = bazel"
226  skip_cleanup: true
227