.travis.yml 4.9 KB

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