• 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-7 CXX_COMPILER=clang++-7 ASAN_OPTIONS=detect_leaks=0
48      addons:
49        apt:
50          sources:
51          - ubuntu-toolchain-r-test
52          - llvm-toolchain-xenial-7
53          packages:
54          - clang-7
55
56    ###
57    ## clang on Linux
58    ###
59    - os: linux
60      env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7
61      addons:
62        apt:
63          sources:
64          - llvm-toolchain-xenial-7
65          - ubuntu-toolchain-r-test
66          packages:
67          - clang-7
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    # Installer is currently broken
96    #- os: linux
97    #  env: BUILD_SYSTEM=cmake C_COMPILER=pgcc CXX_COMPILER=pgc++
98
99    ###
100    ## Python 2.7 and 3.6 builds on Linux
101    ###
102    - os: linux
103      language: python
104      python: 2.7
105      env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5
106      addons:
107        apt:
108          sources:
109          - ubuntu-toolchain-r-test
110          packages:
111          - gcc-5
112          - g++-5
113    - os: linux
114      language: python
115      python: 3.6
116      env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5
117      addons:
118        apt:
119          sources:
120          - ubuntu-toolchain-r-test
121          packages:
122          - gcc-5
123          - g++-5
124
125    ###
126    ## CMake on OS X
127    ##
128    ## These all work, but it seems unnecessary to actually build them
129    ## all since we already test all these versions of GCC on Linux.
130    ## We'll just test 4.4 and the most recent version.
131    ###
132    - os: osx
133      env: BUILD_SYSTEM=cmake C_COMPILER=gcc CXX_COMPILER=g++
134    - os: osx
135      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
136    - os: osx
137      env: BUILD_SYSTEM=cmake
138
139    ###
140    ## Python 2.7 OS X build (using the system /usr/bin/python)
141    ###
142    - os: osx
143      env: BUILD_SYSTEM=python C_COMPILER=gcc CXX_COMPILER=g++
144
145    ###
146    ## Sanitizers
147    ###
148    - os: linux
149      env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=address ASAN_OPTIONS=detect_leaks=0
150      addons:
151        apt:
152          sources:
153          - ubuntu-toolchain-r-test
154          - llvm-toolchain-xenial-7
155          packages:
156          - clang-7
157    - os: linux
158      env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=thread
159      addons:
160        apt:
161          sources:
162          - ubuntu-toolchain-r-test
163          - llvm-toolchain-xenial-7
164          packages:
165          - clang-7
166    - os: linux
167      env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
168      addons:
169        apt:
170          sources:
171          - ubuntu-toolchain-r-test
172          - llvm-toolchain-xenial-7
173          packages:
174          - clang-7
175
176    - os: linux
177      env: BUILD_SYSTEM=maven
178      jdk:
179      # maven + jdk11 + javadoc == trouble
180      - openjdk10
181      language: java
182
183    - os: linux
184      sudo: required
185      language: java
186      jdk: oraclejdk9
187      env: BUILD_SYSTEM=bazel
188      addons:
189        apt:
190          sources:
191            - sourceline: "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8"
192              key_url: "https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg"
193            - ubuntu-toolchain-r-test
194          packages:
195            - bazel
196
197    - os: osx
198      env: BUILD_SYSTEM=bazel
199      osx_image: xcode11.3
200      language: java
201
202before_install:
203###
204## If we use the matrix to set CC/CXX Travis, overwrites the values,
205## so instead we use C/CXX_COMPILER, then copy the values to CC/CXX
206## here (after Travis has set CC/CXX).
207###
208- if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi
209- if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi
210- scripts/.travis.sh before_install
211install:
212- scripts/.travis.sh install
213script:
214- scripts/.travis.sh script
215after_success:
216- scripts/.travis.sh after_success
217
218before_deploy:
219- scripts/.travis.sh before_deploy
220
221deploy:
222- provider: bintray
223  file: "scripts/.bintray.json"
224  user: "eustas"
225  key:
226    secure: "Kbam/lTAdz72fZivbs6riJT+Y4PbuKP7r6t5PAWxJxAAykjwnYTRe3zF472g9HCE14KYMsdB+KSYSgg6TGJnqGC9gL9xhhGU9U/WmA+vbMWS/MSnMWpK9IRpp77pM2i2NKZD4v33JuEwKFCBJP3Vj6QQ5Qd1NKdobuXJyznhgnw="
227  on:
228    condition: "${BUILD_SYSTEM} = bazel"
229  skip_cleanup: true
230