• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1language: c
2
3branches:
4  except:
5    - /^[0-9]+\.[0-9]+\.[0-9]+/
6    - /^jpeg-.*/
7
8matrix:
9  include:
10    - os: linux
11      env: BUILD_OFFICIAL=1
12      sudo: required
13      services:
14        - docker
15    - os: osx
16      env: BUILD_OFFICIAL=1
17      osx_image: xcode8.3
18    - os: linux
19      compiler: clang
20      env:
21        CMAKE_BUILD_TYPE=RelWithDebInfo
22        CFLAGS_RELWITHDEBINFO="-O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer"
23        CMAKE_FLAGS="-DENABLE_SHARED=0"
24        ASAN_OPTIONS="detect_leaks=1 symbolize=1"
25        CTEST_OUTPUT_ON_FAILURE=1
26      addons:
27        apt:
28          packages:
29            - nasm
30    - os: linux
31      compiler: gcc
32      env:
33        CMAKE_FLAGS="-DWITH_12BIT=1"
34        CTEST_OUTPUT_ON_FAILURE=1
35    - os: linux
36      compiler: gcc
37      env:
38        CMAKE_FLAGS="-DWITH_JPEG7=1"
39        CTEST_OUTPUT_ON_FAILURE=1
40      addons:
41        apt:
42          packages:
43            - nasm
44    - os: linux
45      compiler: gcc
46      env:
47        CMAKE_FLAGS="-DWITH_JPEG8=1"
48        CTEST_OUTPUT_ON_FAILURE=1
49      addons:
50        apt:
51          packages:
52            - nasm
53    - os: linux
54      compiler: clang
55      env:
56        CMAKE_BUILD_TYPE=RelWithDebInfo
57        CFLAGS_RELWITHDEBINFO="-O3 -g -fsanitize=memory -fPIE"
58        CMAKE_FLAGS="-DWITH_SIMD=0"
59        CTEST_OUTPUT_ON_FAILURE=1
60
61addons:
62  homebrew:
63    brewfile: true
64    update: true
65
66cache:
67  directories:
68    - $HOME/Library/Caches/Homebrew
69
70before_cache:
71  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
72
73before_install:
74  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
75      git clone --depth=1 https://github.com/libjpeg-turbo/gas-preprocessor.git ~/src/gas-preprocessor &&
76      ln -fs /Applications/Xcode.app /Applications/Xcode72.app;
77    fi
78  - if [ "${BUILD_OFFICIAL:-}" != "" ]; then
79      if [ "$TRAVIS_OS_NAME" = "linux" ]; then
80        docker pull dcommander/buildljt;
81      fi &&
82      git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b $TRAVIS_BRANCH ~/src/buildscripts &&
83      if [ -n "$encrypted_f92e8533f6f1_iv" ]; then
84        openssl aes-256-cbc -K $encrypted_f92e8533f6f1_key -iv $encrypted_f92e8533f6f1_iv -in ci/keys.enc -out ci/keys -d &&
85        tar xf ci/keys &&
86        rm ci/keys &&
87        mv ci/gpgsign ~/src/buildscripts &&
88        gpg --batch --import ci/sign_ljt &&
89        rm ci/sign_ljt;
90      fi
91    fi
92
93script:
94  - if [ "${BUILD_OFFICIAL:-}" != "" ]; then
95      mkdir -p ~/src/ljt.nightly &&
96      if [ "$TRAVIS_OS_NAME" = "linux" ]; then
97        mkdir $HOME/rpmkeys &&
98        wget --no-check-certificate "http://www.libjpeg-turbo.org/key/LJTPR-GPG-KEY" -O $HOME/rpmkeys/LJTPR-GPG-KEY &&
99        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" &&
100        sudo chown -R travis:travis ~/src/ljt.nightly &&
101        mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
102      else
103        PATH=$PATH:~/src/gas-preprocessor ~/src/buildscripts/buildljt -d $TRAVIS_BUILD_DIR -v &&
104        mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
105      fi
106    fi
107  - if [ "${BUILD_OFFICIAL:-}" == "" ]; then
108      mkdir build &&
109      pushd build &&
110      cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE "-DCMAKE_C_FLAGS_RELWITHDEBINFO=$CFLAGS_RELWITHDEBINFO" $CMAKE_FLAGS .. &&
111      export NUMCPUS=`grep -c '^processor' /proc/cpuinfo` &&
112      make -j$NUMCPUS --load-average=$NUMCPUS &&
113      make test &&
114      if [[ ! "${CMAKE_FLAGS[0]}" =~ "WITH_12BIT" &&
115            ! "${CMAKE_FLAGS[0]}" =~ "WITH_SIMD" ]]; then
116        JSIMD_FORCESSE2=1 make test &&
117        cmake -DFLOATTEST=32bit .. &&
118        JSIMD_FORCENONE=1 make test;
119      fi &&
120      popd;
121    fi
122
123after_failure:
124  - if [ "${BUILD_OFFICIAL:-}" == "" ]; then
125      if [ -f $TRAVIS_BUILD_DIR/build/config.log ]; then
126        cat $TRAVIS_BUILD_DIR/build/config.log;
127      fi
128    fi
129
130deploy:
131  - provider: s3
132    bucket: libjpeg-turbo-pr
133    access_key_id:
134      secure: bmFEt4H90/oR/LiN9XI+G26Pd6hiyrTw3+Vg3lS4ynwAYk33weApaVM8CyzQTgIhGSPzFStqVm9fTrb3RmrYP/PnNS+/surOeWLkH2DMRxvc0qmetBuNx1+vAN7FUkY8MO/u5uE9WXHAdp4e64pXcLXEbKmh+wgDm72b35WmMxErtHsGbpqy+j47rQkY4BJGi7XQzjjafaamfm4PzitsjkYYsgX8KLI16jyJEIirvyDHCPTn9wKR/jSjelDl+xTlgZGuCqmLCBW8f6JgycIspWjcYfO4WpWvkbnnI2sl3rCMPvOYc4wHe8SwzG0l4tM1PblZZDRcU7vjE15PmNf1Xfq9Vx3RpgBJv+UBNL/Vn0rKdpUCeEcfC12hxrske8DWpV6waBiDivjQJreE+YRXqa5YBhV/EdkoKYCqafnJvRASlOko9evje8F9KXTNsIGTT1HPmU9QM9WoJwLs/Xa3t09EmA2IjhcuAvvUmwCTuBBQVAlDjExiTT3Zhc9IYZDD92JgpAYLgridtzR87ElOxKhTkR4PowdI6UiLYArPjMFTjoz5Rivb9qNpbLaQC8HCYgLWxpWtUTzlW/9rM8izHpF8ySFHjO6E2aA9OJFc0tcbEGwAs2jLGD01OduU+DbBfsIkW0EgfXCPbD3FVgHsn3tkuzgO/bg20SM7uuCEYKQ=
135    secret_access_key:
136      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=
137    acl: public_read
138    local-dir: $HOME/src/ljt.nightly/latest/files
139    upload-dir: $TRAVIS_BRANCH/$TRAVIS_OS_NAME
140    on:
141      repo: libjpeg-turbo/libjpeg-turbo
142      branch: master
143      condition: -n "$BUILD_OFFICIAL"
144  - provider: s3
145    bucket: libjpeg-turbo-pr
146    access_key_id:
147      secure: bmFEt4H90/oR/LiN9XI+G26Pd6hiyrTw3+Vg3lS4ynwAYk33weApaVM8CyzQTgIhGSPzFStqVm9fTrb3RmrYP/PnNS+/surOeWLkH2DMRxvc0qmetBuNx1+vAN7FUkY8MO/u5uE9WXHAdp4e64pXcLXEbKmh+wgDm72b35WmMxErtHsGbpqy+j47rQkY4BJGi7XQzjjafaamfm4PzitsjkYYsgX8KLI16jyJEIirvyDHCPTn9wKR/jSjelDl+xTlgZGuCqmLCBW8f6JgycIspWjcYfO4WpWvkbnnI2sl3rCMPvOYc4wHe8SwzG0l4tM1PblZZDRcU7vjE15PmNf1Xfq9Vx3RpgBJv+UBNL/Vn0rKdpUCeEcfC12hxrske8DWpV6waBiDivjQJreE+YRXqa5YBhV/EdkoKYCqafnJvRASlOko9evje8F9KXTNsIGTT1HPmU9QM9WoJwLs/Xa3t09EmA2IjhcuAvvUmwCTuBBQVAlDjExiTT3Zhc9IYZDD92JgpAYLgridtzR87ElOxKhTkR4PowdI6UiLYArPjMFTjoz5Rivb9qNpbLaQC8HCYgLWxpWtUTzlW/9rM8izHpF8ySFHjO6E2aA9OJFc0tcbEGwAs2jLGD01OduU+DbBfsIkW0EgfXCPbD3FVgHsn3tkuzgO/bg20SM7uuCEYKQ=
148    secret_access_key:
149      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=
150    acl: public_read
151    local-dir: $HOME/src/ljt.nightly/latest/files
152    upload-dir: $TRAVIS_BRANCH/$TRAVIS_OS_NAME
153    on:
154      repo: libjpeg-turbo/libjpeg-turbo
155      branch: dev
156      condition: -n "$BUILD_OFFICIAL"
157