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