Fix several memory and resource leaks
[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: Npi13uOffALCVNwea4p4q8v85Lo/WsRqaeZQcWrAkt8MxRnfvWQtmnuwmHnVB6Cig+T1lVUHrklOaJIApIb6nkGq3CS/9bD8+SCS2NEdAAP/QYWnBi0ubWXVMRyDLypmwRpzLNSZ0xLYGFUl2PjieZYKRcz1dd/J7S+FnXhPtdjXweq0FS63zTcMe7ggjfmzSOWUCEFmMjZPaM0Be+3PweieCO1dxlHuy7ugCkx2S7d+5hNsicIhQmTADjqtJAkHoMhYqu6/yLFxhjO/+f938PATFULdODTvjCsUwdN/ySWi1Oj4uPAntfytZP7H6YrzLh8dS73QCsdkhhDJIgJskHIBSbRyyEVUnOvQgD9VaBVGHtc1KtZQTwc41OUO3BGPHl97s3oX6bqWqo/L53dB3TPHGx+1+2HL/F0zaDZuHhAKMkPwe8LFPMPB/ur65zXMHjnWb2ZTVVdoIvkbQ7nu8ApI60ejxocYBsEyAuC2CPXU2ki4jdEhm0E1hIziWNE9/LTuM17ziQuJ6WpXOSMrfP4o5aVDmLp5ZGBSocrspOksgyI9XogHaO/r+Y6N3exy+giObFfMHkZVUpsKrKmtOJ7TC1Vg5HsYGlWW8RN8dkJV47bUXm9K4sMos9eYMUt/czykPAs+132cogpII3QxXpFZQqZg6SEPVfOiyqQzTUI=
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"
159