Merge pull request #1518 from dg0yt/static-windows
[openjpeg.git] / .travis.yml
1 language: cpp
2
3 matrix:
4   include:
5 # OSX
6 # OPJ_NONCOMMERCIAL=0 because Kakadu install hangs (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
7 #    - os: osx
8 #      compiler: clang
9 #      env: OPJ_NONCOMMERCIAL=0 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1
10
11 # Test code style
12     - os: linux
13       compiler: clang-3.8
14       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_CHECK_STYLE=1 OPJ_CI_SKIP_TESTS=1
15       addons:
16         apt:
17           sources:
18             - llvm-toolchain-precise-3.8
19             - ubuntu-toolchain-r-test
20           packages:
21             - clang-3.8
22             - flip
23
24 # Performance test with GCC
25 # Disabled because tests fail
26 #    - os: linux
27 #      compiler: g++
28 #      dist: precise
29 #      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1
30
31 # Test compilation with AVX2
32     - os: linux
33       # "sudo: yes" and "dist: trusty" give us a worker with the AVX2 instruction set
34       sudo: yes
35       dist: trusty
36       compiler: clang-3.8
37       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release
38       addons:
39         apt:
40           sources:
41             - llvm-toolchain-precise-3.8
42             - ubuntu-toolchain-r-test
43           packages:
44             - clang-3.8
45
46 # Test multi-threading
47 # Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
48 #    - os: linux
49 #      compiler: g++
50 #      dist: precise
51 #      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
52
53 # Test 32-bit compilation
54 # Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
55 #    - os: linux
56 #      compiler: g++
57 #      env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
58 #      dist: trusty
59 #      addons:
60 #        apt:
61 #          packages:
62 #            - gcc-multilib
63 #            - g++-multilib
64
65 # Profile code (gcc -pg)
66 # Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
67 #    - os: linux
68 #      compiler: g++
69 #      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
70 #      dist: trusty
71 #      addons:
72 #        apt:
73 #          packages:
74 #            - valgrind
75
76 # Test under ASAN
77 # Temporarily disabled since broken. See https://github.com/uclouvain/openjpeg/issues/1091
78 #    - os: linux
79 #      compiler: clang
80 #      env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1
81
82 # Test with CLang 3.8
83     - os: linux
84       compiler: clang-3.8
85       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_PERF_TESTS=1 OPJ_CI_BUILD_FUZZERS=1
86       dist: trusty
87       addons:
88         apt:
89           sources:
90             - llvm-toolchain-precise-3.8
91             - ubuntu-toolchain-r-test
92           packages:
93             - clang-3.8
94
95 # Test with mingw 32 bit
96     - os: linux
97       compiler: x86_64-w64-mingw32-g++
98       env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
99       dist: trusty
100       addons:
101         apt:
102           packages:
103             - gcc-mingw-w64-base
104             - binutils-mingw-w64-i686
105             - gcc-mingw-w64-i686
106             - gcc-mingw-w64      
107             - g++-mingw-w64-i686
108             - gcc-multilib
109             - g++-multilib
110
111 # Test with mingw 64 bit
112     - os: linux
113       compiler: x86_64-w64-mingw32-g++
114       env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
115       dist: trusty
116       addons:
117         apt:
118           packages:
119             - gcc-mingw-w64-base
120             - binutils-mingw-w64-x86-64
121             - gcc-mingw-w64-x86-64
122             - gcc-mingw-w64
123             - g++-mingw-w64-x86-64
124
125 # Test with gcc 4.8
126     - os: linux
127       compiler: g++-4.8
128       env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1
129       dist: xenial
130       addons:
131         apt:
132           sources:
133             - ubuntu-toolchain-r-test
134           packages:
135             - gcc-4.8
136             - g++-4.8
137             - libelf-dev
138             - elfutils
139             - texinfo
140             - exuberant-ctags
141
142 install:
143   - "./tools/travis-ci/install.sh"
144
145 script:
146   - "./tools/travis-ci/run.sh"
147   - "./tools/travis-ci/abi-check.sh"
148
149 before_deploy:
150   - export OPJ_RELEASE_PKG_FILE=$(ls build/openjpeg-${TRAVIS_TAG}*)
151   - echo "deploying $OPJ_RELEASE_PKG_FILE to GitHub releases"
152
153 deploy:
154   provider: releases
155   api_key:
156     secure: dJXdzoFwk9wYWIKztnXKlVIr1QDmeXtk3oK+2MEzy22fBTKPuphU/cYMvhi5B7sWDwm77f43vbAYO6z7IFmuThwhkuVMD/o+lUyCqGffGeiU1pKpxEvB+LbO/C5asdSnor3RfYdOyo3x4cNlhNtfhXIn7FcAg371yEY6VSIP87adoQcuE+taig0cYWcrNWYGHirHlzEz1utnKwCT/nlhV4nSIWxjwYUp3nt8PAw3RbqQkPPNBniW92g6JA25vLRc3HMD18ISCfNLC2fI6a/dTR+vd+bCySA7JvqeDZnv8SxbVIabu5T+A5CHzHbdp2l2kynPwqHOO47pGa+VfisXEwSsOpa+4EZsPLdwOhaFFnvDwKwR3EjI1TkRVd26IcK61Y5zVZQgalnXBowBEZoI4fT/oEPF7VZMjN3sy/do1U6d5kO0UGqCHCJIVwPeELhwq5z7Ld04K7dSFFVenZhhQKCwxI1o8vgkGNJUWD2Ii6ZLrZKYZ0lC65hr2d39e/KoK3Yh5KHF0cVn6ppBTcUjYr/tdHHO43rwoaf3r1CdAQAYpFvfi3900hl9I/GPwky0YJ6W2QDS2vincwaqWDQ0+WNGf4AKSdx5kCgQU45PSfDb/lxAyXkqmBuI3h/C2ellleaWVL9sGtNRWa/w6WseGMGwfCXgN82XRVM2bgP6pYg=
157   file_glob: true
158   file: "${OPJ_RELEASE_PKG_FILE}"
159   skip_cleanup: true
160   on:
161     repo: uclouvain/openjpeg
162     tags: true
163     condition: "$OPJ_CI_INCLUDE_IF_DEPLOY = 1"