.travis.yml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. language: c
  2. branches:
  3. except:
  4. - /^[0-9]+\.[0-9]+\.[0-9]+/
  5. - /^jpeg-.*/
  6. matrix:
  7. include:
  8. - os: linux
  9. env: BUILD_OFFICIAL=1
  10. sudo: required
  11. services:
  12. - docker
  13. - os: osx
  14. env: BUILD_OFFICIAL=1
  15. osx_image: xcode8.3
  16. - os: linux
  17. compiler: clang
  18. env:
  19. CMAKE_BUILD_TYPE=RelWithDebInfo
  20. CFLAGS_RELWITHDEBINFO="-O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer"
  21. CMAKE_FLAGS="-DENABLE_SHARED=0"
  22. ASAN_OPTIONS="detect_leaks=1 symbolize=1"
  23. CTEST_OUTPUT_ON_FAILURE=1
  24. addons:
  25. apt:
  26. packages:
  27. - nasm
  28. - os: linux
  29. compiler: gcc
  30. env:
  31. CMAKE_FLAGS="-DWITH_12BIT=1"
  32. CTEST_OUTPUT_ON_FAILURE=1
  33. - os: linux
  34. compiler: gcc
  35. env:
  36. CMAKE_FLAGS="-DWITH_JPEG7=1"
  37. CTEST_OUTPUT_ON_FAILURE=1
  38. addons:
  39. apt:
  40. packages:
  41. - nasm
  42. - os: linux
  43. compiler: gcc
  44. env:
  45. CMAKE_FLAGS="-DWITH_JPEG8=1"
  46. CTEST_OUTPUT_ON_FAILURE=1
  47. addons:
  48. apt:
  49. packages:
  50. - nasm
  51. - os: linux
  52. compiler: clang
  53. env:
  54. CMAKE_BUILD_TYPE=RelWithDebInfo
  55. CFLAGS_RELWITHDEBINFO="-O3 -g -fsanitize=memory -fPIE"
  56. CMAKE_FLAGS="-DWITH_SIMD=0"
  57. CTEST_OUTPUT_ON_FAILURE=1
  58. before_install:
  59. - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
  60. pushd $HOME/Downloads &&
  61. curl -LO https://updates.cdn-apple.com/2019/cert/041-88384-20191011-3d8da658-dca4-4a5b-b67c-26e686876403/JavaForOSX.dmg &&
  62. hdid JavaForOSX.dmg &&
  63. sudo installer -pkg /Volumes/Java\ for\ macOS\ 2017-001/JavaForOSX.pkg -target / &&
  64. hdiutil detach /Volumes/Java\ for\ macOS\ 2017-001 &&
  65. curl -LO https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci &&
  66. . ./macports-ci install &&
  67. sudo /opt/local/bin/port -N install gcc5 yasm md5sha1sum &&
  68. popd &&
  69. git clone --depth=1 https://github.com/libjpeg-turbo/gas-preprocessor.git ~/src/gas-preprocessor &&
  70. ln -fs /Applications/Xcode.app /Applications/Xcode72.app;
  71. fi
  72. - if [ "${BUILD_OFFICIAL:-}" != "" ]; then
  73. if [ "$TRAVIS_OS_NAME" = "linux" ]; then
  74. docker pull dcommander/buildljt;
  75. fi &&
  76. git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b $TRAVIS_BRANCH ~/src/buildscripts &&
  77. if [ -n "$encrypted_f92e8533f6f1_iv" ]; then
  78. openssl aes-256-cbc -K $encrypted_f92e8533f6f1_key -iv $encrypted_f92e8533f6f1_iv -in ci/keys.enc -out ci/keys -d &&
  79. tar xf ci/keys &&
  80. rm ci/keys &&
  81. mv ci/gpgsign ~/src/buildscripts &&
  82. gpg --batch --import ci/sign_ljt &&
  83. rm ci/sign_ljt;
  84. fi
  85. fi
  86. script:
  87. - if [ "${BUILD_OFFICIAL:-}" != "" ]; then
  88. mkdir -p ~/src/ljt.nightly &&
  89. if [ "$TRAVIS_OS_NAME" = "linux" ]; then
  90. mkdir $HOME/rpmkeys &&
  91. wget --no-check-certificate "http://www.libjpeg-turbo.org/key/LJTPR-GPG-KEY" -O $HOME/rpmkeys/LJTPR-GPG-KEY &&
  92. docker run -v $HOME/src/ljt.nightly:/root/src/ljt.nightly -v $HOME/src/buildscripts:/root/src/buildscripts -v $TRAVIS_BUILD_DIR:/root/src/libjpeg-turbo -v $HOME/.gnupg:/root/.gnupg -v $HOME/rpmkeys:/rpmkeys -t dcommander/buildljt:latest bash -c "rpm --import /rpmkeys/LJTPR-GPG-KEY && ~/src/buildscripts/buildljt -d /root/src/libjpeg-turbo -v" &&
  93. sudo chown -R travis:travis ~/src/ljt.nightly &&
  94. mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
  95. else
  96. PATH=$PATH:~/src/gas-preprocessor ~/src/buildscripts/buildljt -d $TRAVIS_BUILD_DIR -v &&
  97. mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
  98. fi
  99. fi
  100. - if [ "${BUILD_OFFICIAL:-}" == "" ]; then
  101. mkdir build &&
  102. pushd build &&
  103. cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE "-DCMAKE_C_FLAGS_RELWITHDEBINFO=$CFLAGS_RELWITHDEBINFO" $CMAKE_FLAGS .. &&
  104. export NUMCPUS=`grep -c '^processor' /proc/cpuinfo` &&
  105. make -j$NUMCPUS --load-average=$NUMCPUS &&
  106. make test &&
  107. if [[ ! "${CMAKE_FLAGS[0]}" =~ "WITH_12BIT" &&
  108. ! "${CMAKE_FLAGS[0]}" =~ "WITH_SIMD" ]]; then
  109. JSIMD_FORCESSE2=1 make test &&
  110. cmake -DFLOATTEST=32bit .. &&
  111. JSIMD_FORCENONE=1 make test;
  112. fi &&
  113. popd;
  114. fi
  115. after_failure:
  116. - if [ "${BUILD_OFFICIAL:-}" == "" ]; then
  117. if [ -f $TRAVIS_BUILD_DIR/build/config.log ]; then
  118. cat $TRAVIS_BUILD_DIR/build/config.log;
  119. fi
  120. fi
  121. deploy:
  122. - provider: s3
  123. bucket: libjpeg-turbo-pr
  124. access_key_id:
  125. secure: bmFEt4H90/oR/LiN9XI+G26Pd6hiyrTw3+Vg3lS4ynwAYk33weApaVM8CyzQTgIhGSPzFStqVm9fTrb3RmrYP/PnNS+/surOeWLkH2DMRxvc0qmetBuNx1+vAN7FUkY8MO/u5uE9WXHAdp4e64pXcLXEbKmh+wgDm72b35WmMxErtHsGbpqy+j47rQkY4BJGi7XQzjjafaamfm4PzitsjkYYsgX8KLI16jyJEIirvyDHCPTn9wKR/jSjelDl+xTlgZGuCqmLCBW8f6JgycIspWjcYfO4WpWvkbnnI2sl3rCMPvOYc4wHe8SwzG0l4tM1PblZZDRcU7vjE15PmNf1Xfq9Vx3RpgBJv+UBNL/Vn0rKdpUCeEcfC12hxrske8DWpV6waBiDivjQJreE+YRXqa5YBhV/EdkoKYCqafnJvRASlOko9evje8F9KXTNsIGTT1HPmU9QM9WoJwLs/Xa3t09EmA2IjhcuAvvUmwCTuBBQVAlDjExiTT3Zhc9IYZDD92JgpAYLgridtzR87ElOxKhTkR4PowdI6UiLYArPjMFTjoz5Rivb9qNpbLaQC8HCYgLWxpWtUTzlW/9rM8izHpF8ySFHjO6E2aA9OJFc0tcbEGwAs2jLGD01OduU+DbBfsIkW0EgfXCPbD3FVgHsn3tkuzgO/bg20SM7uuCEYKQ=
  126. secret_access_key:
  127. secure: mrkOpEtqd2dEmi/qNJyX9vkME+6xgVBnXaRETKF7jT+flcQCQ0ayQkRkMV7lzGqq44XFg+n6Cpfn6oW0gH9RNdcC8YQvFP+kgzPx6nw6V/M31Vz6ySapJf59HBzVevf0NJkr0/1JoWsp1iq4IoN10WPzsCXZB55Io3Cf7DgpR+yiyBlWOctDfNdjJ97Juw3ENE80MHDf0fVqdUOIknQka1p68yAGkjar9kc2Oe7o94RzzmoqEn8tuFumiBQjIcuVRALsKqz+eIxBNgkL3BF9shVyRjOWLAeBhMPVFxZs5Dgd4ECbvU0i33gfmje3d6qqcw78N2lZaLefoVvWol3pOzVO133ewOSY9/lmpqEiRUU2ohEe8T4aSoS7posBW42itUTO4Y5w+eVOnHsm4sRQaI+/AXWTe7GPel+P8Qbe8Ya10A5gnpoag7o3raRDcHx+/qaZw1Af/u4XiAOYz3be3U90Qc+YMc/kS5i8BH0GXBbSfaWQ00CwRFlZQ3n1xUqmjC2CmjZTki3W/p7mEt0DjhcH9ZIXscK603sCC+mF6pEd9019k5fG/8fr2Y4Ptai9kd3BxZJCX9/jSoMfWOBbgkA5bRgHU0xrAj+p49qD6Ej9Xr8GE3+uebz3sEuhSFRnCKwKoOHOemfgevfO2y/jQXP677WPf3xQX7bVDfTFSHU=
  128. acl: public_read
  129. local-dir: $HOME/src/ljt.nightly/latest/files
  130. upload-dir: $TRAVIS_BRANCH/$TRAVIS_OS_NAME
  131. on:
  132. repo: libjpeg-turbo/libjpeg-turbo
  133. branch: master
  134. condition: -n "$BUILD_OFFICIAL"
  135. - provider: s3
  136. bucket: libjpeg-turbo-pr
  137. access_key_id:
  138. secure: bmFEt4H90/oR/LiN9XI+G26Pd6hiyrTw3+Vg3lS4ynwAYk33weApaVM8CyzQTgIhGSPzFStqVm9fTrb3RmrYP/PnNS+/surOeWLkH2DMRxvc0qmetBuNx1+vAN7FUkY8MO/u5uE9WXHAdp4e64pXcLXEbKmh+wgDm72b35WmMxErtHsGbpqy+j47rQkY4BJGi7XQzjjafaamfm4PzitsjkYYsgX8KLI16jyJEIirvyDHCPTn9wKR/jSjelDl+xTlgZGuCqmLCBW8f6JgycIspWjcYfO4WpWvkbnnI2sl3rCMPvOYc4wHe8SwzG0l4tM1PblZZDRcU7vjE15PmNf1Xfq9Vx3RpgBJv+UBNL/Vn0rKdpUCeEcfC12hxrske8DWpV6waBiDivjQJreE+YRXqa5YBhV/EdkoKYCqafnJvRASlOko9evje8F9KXTNsIGTT1HPmU9QM9WoJwLs/Xa3t09EmA2IjhcuAvvUmwCTuBBQVAlDjExiTT3Zhc9IYZDD92JgpAYLgridtzR87ElOxKhTkR4PowdI6UiLYArPjMFTjoz5Rivb9qNpbLaQC8HCYgLWxpWtUTzlW/9rM8izHpF8ySFHjO6E2aA9OJFc0tcbEGwAs2jLGD01OduU+DbBfsIkW0EgfXCPbD3FVgHsn3tkuzgO/bg20SM7uuCEYKQ=
  139. secret_access_key:
  140. secure: mrkOpEtqd2dEmi/qNJyX9vkME+6xgVBnXaRETKF7jT+flcQCQ0ayQkRkMV7lzGqq44XFg+n6Cpfn6oW0gH9RNdcC8YQvFP+kgzPx6nw6V/M31Vz6ySapJf59HBzVevf0NJkr0/1JoWsp1iq4IoN10WPzsCXZB55Io3Cf7DgpR+yiyBlWOctDfNdjJ97Juw3ENE80MHDf0fVqdUOIknQka1p68yAGkjar9kc2Oe7o94RzzmoqEn8tuFumiBQjIcuVRALsKqz+eIxBNgkL3BF9shVyRjOWLAeBhMPVFxZs5Dgd4ECbvU0i33gfmje3d6qqcw78N2lZaLefoVvWol3pOzVO133ewOSY9/lmpqEiRUU2ohEe8T4aSoS7posBW42itUTO4Y5w+eVOnHsm4sRQaI+/AXWTe7GPel+P8Qbe8Ya10A5gnpoag7o3raRDcHx+/qaZw1Af/u4XiAOYz3be3U90Qc+YMc/kS5i8BH0GXBbSfaWQ00CwRFlZQ3n1xUqmjC2CmjZTki3W/p7mEt0DjhcH9ZIXscK603sCC+mF6pEd9019k5fG/8fr2Y4Ptai9kd3BxZJCX9/jSoMfWOBbgkA5bRgHU0xrAj+p49qD6Ej9Xr8GE3+uebz3sEuhSFRnCKwKoOHOemfgevfO2y/jQXP677WPf3xQX7bVDfTFSHU=
  141. acl: public_read
  142. local-dir: $HOME/src/ljt.nightly/latest/files
  143. upload-dir: $TRAVIS_BRANCH/$TRAVIS_OS_NAME
  144. on:
  145. repo: libjpeg-turbo/libjpeg-turbo
  146. branch: dev
  147. condition: -n "$BUILD_OFFICIAL"