Fix remaining warning
[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       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1
27
28 # Test compilation with AVX2
29     - os: linux
30       # "sudo: yes" and "dist: trusty" give us a worker with the AVX2 instruction set
31       sudo: yes
32       dist: trusty
33       compiler: clang-3.8
34       env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release
35       addons:
36         apt:
37           sources:
38             - llvm-toolchain-precise-3.8
39             - ubuntu-toolchain-r-test
40           packages:
41             - clang-3.8
42
43 # Test multi-threading
44     - os: linux
45       compiler: g++
46       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
47
48 # Test 32-bit compilation
49     - os: linux
50       compiler: g++
51       env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
52       addons:
53         apt:
54           packages:
55             - gcc-multilib
56             - g++-multilib
57
58 # Profile code (gcc -pg)
59     - os: linux
60       compiler: g++
61       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
62       addons:
63         apt:
64           packages:
65             - valgrind
66
67 # Test under ASAN
68     - os: linux
69       compiler: clang
70       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1
71
72 # Test with CLang 3.8
73     - os: linux
74       compiler: clang-3.8
75       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
76       addons:
77         apt:
78           sources:
79             - llvm-toolchain-precise-3.8
80             - ubuntu-toolchain-r-test
81           packages:
82             - clang-3.8
83
84 # Test with mingw 32 bit
85     - os: linux
86       compiler: x86_64-w64-mingw32-g++
87       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
88       addons:
89         apt:
90           packages:
91             - gcc-mingw-w64-base
92             - binutils-mingw-w64-i686
93             - gcc-mingw-w64-i686
94             - gcc-mingw-w64      
95             - g++-mingw-w64-i686
96             - gcc-multilib
97             - g++-multilib
98
99 # Test with mingw 64 bit
100     - os: linux
101       compiler: x86_64-w64-mingw32-g++
102       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
103       addons:
104         apt:
105           packages:
106             - gcc-mingw-w64-base
107             - binutils-mingw-w64-x86-64
108             - gcc-mingw-w64-x86-64
109             - gcc-mingw-w64
110             - g++-mingw-w64-x86-64
111
112 # Test with gcc 4.8
113     - os: linux
114       compiler: g++-4.8
115       env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1
116       addons:
117         apt:
118           sources:
119             - ubuntu-toolchain-r-test
120           packages:
121             - gcc-4.8
122             - g++-4.8
123             - libelf-dev
124             - elfutils
125             - texinfo
126             - exuberant-ctags
127
128 install:
129   - ./tools/travis-ci/install.sh
130
131 script:
132   - ./tools/travis-ci/run.sh
133   - ./tools/travis-ci/abi-check.sh
134
135 before_deploy:
136   - export OPJ_RELEASE_PKG_FILE=$(ls build/openjpeg-${TRAVIS_TAG}*)
137   - echo "deploying $OPJ_RELEASE_PKG_FILE to GitHub releases"
138
139 deploy:
140   provider: releases
141   api_key:
142     secure: Npi13uOffALCVNwea4p4q8v85Lo/WsRqaeZQcWrAkt8MxRnfvWQtmnuwmHnVB6Cig+T1lVUHrklOaJIApIb6nkGq3CS/9bD8+SCS2NEdAAP/QYWnBi0ubWXVMRyDLypmwRpzLNSZ0xLYGFUl2PjieZYKRcz1dd/J7S+FnXhPtdjXweq0FS63zTcMe7ggjfmzSOWUCEFmMjZPaM0Be+3PweieCO1dxlHuy7ugCkx2S7d+5hNsicIhQmTADjqtJAkHoMhYqu6/yLFxhjO/+f938PATFULdODTvjCsUwdN/ySWi1Oj4uPAntfytZP7H6YrzLh8dS73QCsdkhhDJIgJskHIBSbRyyEVUnOvQgD9VaBVGHtc1KtZQTwc41OUO3BGPHl97s3oX6bqWqo/L53dB3TPHGx+1+2HL/F0zaDZuHhAKMkPwe8LFPMPB/ur65zXMHjnWb2ZTVVdoIvkbQ7nu8ApI60ejxocYBsEyAuC2CPXU2ki4jdEhm0E1hIziWNE9/LTuM17ziQuJ6WpXOSMrfP4o5aVDmLp5ZGBSocrspOksgyI9XogHaO/r+Y6N3exy+giObFfMHkZVUpsKrKmtOJ7TC1Vg5HsYGlWW8RN8dkJV47bUXm9K4sMos9eYMUt/czykPAs+132cogpII3QxXpFZQqZg6SEPVfOiyqQzTUI=
143   file_glob: true
144   file: "${OPJ_RELEASE_PKG_FILE}"
145   skip_cleanup: true
146   on:
147     repo: uclouvain/openjpeg
148     tags: true
149     condition: "$OPJ_CI_INCLUDE_IF_DEPLOY = 1"
150