.travis.yml: add 'dist: precise' for config that requires it
[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       addons:
55         apt:
56           packages:
57             - gcc-multilib
58             - g++-multilib
59
60 # Profile code (gcc -pg)
61     - os: linux
62       compiler: g++
63       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
64       addons:
65         apt:
66           packages:
67             - valgrind
68
69 # Test under ASAN
70     - os: linux
71       compiler: clang
72       env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_ASAN=1
73
74 # Test with CLang 3.8
75     - os: linux
76       compiler: clang-3.8
77       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
78       addons:
79         apt:
80           sources:
81             - llvm-toolchain-precise-3.8
82             - ubuntu-toolchain-r-test
83           packages:
84             - clang-3.8
85
86 # Test with mingw 32 bit
87     - os: linux
88       compiler: x86_64-w64-mingw32-g++
89       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
90       addons:
91         apt:
92           packages:
93             - gcc-mingw-w64-base
94             - binutils-mingw-w64-i686
95             - gcc-mingw-w64-i686
96             - gcc-mingw-w64      
97             - g++-mingw-w64-i686
98             - gcc-multilib
99             - g++-multilib
100
101 # Test with mingw 64 bit
102     - os: linux
103       compiler: x86_64-w64-mingw32-g++
104       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
105       addons:
106         apt:
107           packages:
108             - gcc-mingw-w64-base
109             - binutils-mingw-w64-x86-64
110             - gcc-mingw-w64-x86-64
111             - gcc-mingw-w64
112             - g++-mingw-w64-x86-64
113
114 # Test with gcc 4.8
115     - os: linux
116       compiler: g++-4.8
117       env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1
118       dist: precise
119       addons:
120         apt:
121           sources:
122             - ubuntu-toolchain-r-test
123           packages:
124             - gcc-4.8
125             - g++-4.8
126             - libelf-dev
127             - elfutils
128             - texinfo
129             - exuberant-ctags
130
131 install:
132   - ./tools/travis-ci/install.sh
133
134 script:
135   - ./tools/travis-ci/run.sh
136   - ./tools/travis-ci/abi-check.sh
137
138 before_deploy:
139   - export OPJ_RELEASE_PKG_FILE=$(ls build/openjpeg-${TRAVIS_TAG}*)
140   - echo "deploying $OPJ_RELEASE_PKG_FILE to GitHub releases"
141
142 deploy:
143   provider: releases
144   api_key:
145     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=
146   file_glob: true
147   file: "${OPJ_RELEASE_PKG_FILE}"
148   skip_cleanup: true
149   on:
150     repo: uclouvain/openjpeg
151     tags: true
152     condition: "$OPJ_CI_INCLUDE_IF_DEPLOY = 1"
153