mirror of
https://github.com/libjpeg-turbo/libjpeg-turbo.git
synced 2026-01-18 21:41:20 +01:00
Migrate from Travis CI to GitHub Actions
Note that this removes our ability to regression test the Armv8 and PowerPC SIMD extensions, effectively revertinga524b9b06band02227e48a9, but at the moment, there is no other way.
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1,6 +1,4 @@
|
||||
/.travis.yml export-ignore
|
||||
/appveyor.yml export-ignore
|
||||
/ci export-ignore
|
||||
/.gitattributes export-ignore
|
||||
/.github export-ignore
|
||||
*.ppm binary
|
||||
|
||||
180
.github/workflows/build.yml
vendored
Normal file
180
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,180 @@
|
||||
name: Build
|
||||
|
||||
on: [push, pull_request, workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set global environment variables
|
||||
run: |
|
||||
echo "BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}" >$GITHUB_ENV
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up build
|
||||
run: |
|
||||
mkdir -p $HOME/src/ljt.nightly
|
||||
docker pull dcommander/buildljt:$BRANCH
|
||||
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b $BRANCH $HOME/src/buildscripts
|
||||
mkdir $HOME/rpmkeys
|
||||
wget --no-check-certificate "http://www.libjpeg-turbo.org/key/LJTPR-GPG-KEY" -O $HOME/rpmkeys/LJTPR-GPG-KEY
|
||||
- name: Configure GPG signing
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
run: |
|
||||
sudo apt install -y gnupg1
|
||||
printf "${{secrets.GPG_KEY}}" | base64 --decode | gpg1 --batch --import -
|
||||
chmod 600 $HOME/.gnupg/gpg.conf
|
||||
echo "GPG_KEY_NAME=\"${{secrets.GPG_KEY_NAME}}\"" >$HOME/src/buildscripts/gpgsign
|
||||
echo "GPG_KEY_ID=${{secrets.GPG_KEY_ID}}" >>$HOME/src/buildscripts/gpgsign
|
||||
echo "GPG_KEY_PASS=${{secrets.GPG_KEY_PASS}}" >>$HOME/src/buildscripts/gpgsign
|
||||
- name: Build
|
||||
run: |
|
||||
docker run -v $HOME/src/ljt.nightly:/root/src/ljt.nightly -v $HOME/src/buildscripts:/root/src/buildscripts -v $GITHUB_WORKSPACE:/root/src/libjpeg-turbo -v $HOME/.gnupg:/root/.gnupg -v $HOME/rpmkeys:/rpmkeys -t dcommander/buildljt:$BRANCH bash -c "rpm --import /rpmkeys/LJTPR-GPG-KEY && ~/src/buildscripts/buildljt -d /root/src/libjpeg-turbo -v"
|
||||
sudo chown -R runner:runner $HOME/src/ljt.nightly
|
||||
mv $HOME/src/ljt.nightly/latest/log-${{github.job}}.txt $HOME/src/ljt.nightly/latest/files/
|
||||
- name: Configure AWS
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
|
||||
aws-secret-access-key: ${{secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
aws-region: ${{secrets.AWS_REGION}}
|
||||
- name: Deploy
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
run: |
|
||||
aws s3 sync --acl public-read --delete $HOME/src/ljt.nightly/latest/files/ s3://libjpeg-turbo-pr/${{env.BRANCH}}/${{github.job}}/
|
||||
macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Set global environment variables
|
||||
run: |
|
||||
echo "BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}" >$GITHUB_ENV
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up build
|
||||
run: |
|
||||
brew install yasm md5sha1sum
|
||||
mkdir -p $HOME/src/ljt.nightly
|
||||
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b $BRANCH $HOME/src/buildscripts
|
||||
- name: Configure GPG signing
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
run: |
|
||||
printf "${{secrets.GPG_KEY}}" | base64 --decode | gpg --batch --import -
|
||||
echo "GPG_KEY_NAME=\"${{secrets.GPG_KEY_NAME}}\"" >$HOME/src/buildscripts/gpgsign
|
||||
echo "GPG_KEY_ID=${{secrets.GPG_KEY_ID}}" >>$HOME/src/buildscripts/gpgsign
|
||||
echo "GPG_KEY_PASS=${{secrets.GPG_KEY_PASS}}" >>$HOME/src/buildscripts/gpgsign
|
||||
- name: Build
|
||||
run: |
|
||||
$HOME/src/buildscripts/buildljt -d $GITHUB_WORKSPACE -v
|
||||
mv $HOME/src/ljt.nightly/latest/log-osx.txt $HOME/src/ljt.nightly/latest/files/
|
||||
- name: Configure AWS
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
|
||||
aws-secret-access-key: ${{secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
aws-region: ${{secrets.AWS_REGION}}
|
||||
- name: Deploy
|
||||
if: ${{github.event_name != 'pull_request'}}
|
||||
run: |
|
||||
aws s3 sync --acl public-read --delete $HOME/src/ljt.nightly/latest/files/ s3://libjpeg-turbo-pr/${{env.BRANCH}}/${{github.job}}/
|
||||
linux-asan-ubsan:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up build
|
||||
run: |
|
||||
sudo apt install -y nasm
|
||||
- name: Build
|
||||
env:
|
||||
ASAN_OPTIONS: "detect_leaks=1 symbolize=1"
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer" -DENABLE_SHARED=0 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
JSIMD_FORCESSE2=1 make test
|
||||
cmake -DFLOATTEST=no-fp-contract ..
|
||||
JSIMD_FORCENONE=1 make test
|
||||
popd
|
||||
linux-12bit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DWITH_12BIT=1 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
popd
|
||||
linux-jpeg7:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up build
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt -y --install-recommends install nasm
|
||||
- name: Build
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DWITH_JPEG7=1 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
JSIMD_FORCESSE2=1 make test
|
||||
cmake -DFLOATTEST=no-fp-contract ..
|
||||
JSIMD_FORCENONE=1 make test
|
||||
popd
|
||||
linux-jpeg8:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up build
|
||||
run: |
|
||||
sudo apt -y install nasm
|
||||
- name: Build
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DWITH_JPEG8=1 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
JSIMD_FORCESSE2=1 make test
|
||||
cmake -DFLOATTEST=no-fp-contract ..
|
||||
JSIMD_FORCENONE=1 make test
|
||||
popd
|
||||
linux-msan:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g -fsanitize=memory -fPIE" -DWITH_SIMD=0 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
popd
|
||||
142
.travis.yml
142
.travis.yml
@@ -1,142 +0,0 @@
|
||||
language: c
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^[0-9]+\.[0-9]+\.[0-9]+/
|
||||
- /^jpeg-.*/
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
env: BUILD_OFFICIAL=1
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
- os: osx
|
||||
env: BUILD_OFFICIAL=1
|
||||
osx_image: xcode8.3
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env:
|
||||
CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
CFLAGS_RELWITHDEBINFO="-O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer"
|
||||
CMAKE_FLAGS="-DENABLE_SHARED=0"
|
||||
ASAN_OPTIONS="detect_leaks=1 symbolize=1"
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- nasm
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env:
|
||||
CMAKE_FLAGS="-DWITH_12BIT=1"
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
arch: ppc64le
|
||||
env:
|
||||
CMAKE_FLAGS="-DWITH_JPEG7=1"
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
arch: arm64
|
||||
env:
|
||||
CMAKE_FLAGS="-DWITH_JPEG8=1"
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env:
|
||||
CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
CFLAGS_RELWITHDEBINFO="-O3 -g -fsanitize=memory -fPIE"
|
||||
CMAKE_FLAGS="-DWITH_SIMD=0"
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
- os: linux
|
||||
compiler: clang
|
||||
arch: arm64
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE=1
|
||||
|
||||
before_install:
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
pushd $HOME/Downloads &&
|
||||
curl -LO https://updates.cdn-apple.com/2019/cert/041-88384-20191011-3d8da658-dca4-4a5b-b67c-26e686876403/JavaForOSX.dmg &&
|
||||
hdid JavaForOSX.dmg &&
|
||||
sudo installer -pkg /Volumes/Java\ for\ macOS\ 2017-001/JavaForOSX.pkg -target / &&
|
||||
hdiutil detach /Volumes/Java\ for\ macOS\ 2017-001 &&
|
||||
curl -LO https://distfiles.macports.org/MacPorts/MacPorts-2.6.4-10.12-Sierra.pkg &&
|
||||
sudo installer -pkg MacPorts-2.6.4-10.12-Sierra.pkg -target / &&
|
||||
rm MacPorts-2.6.4-10.12-Sierra.pkg &&
|
||||
sudo /opt/local/bin/port -N install gcc5 yasm md5sha1sum &&
|
||||
export PATH=/opt/local/bin:$PATH &&
|
||||
popd &&
|
||||
git clone --depth=1 https://github.com/libjpeg-turbo/gas-preprocessor.git ~/src/gas-preprocessor &&
|
||||
ln -fs /Applications/Xcode.app /Applications/Xcode72.app;
|
||||
fi
|
||||
- if [ "${BUILD_OFFICIAL:-}" != "" ]; then
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
docker pull dcommander/buildljt:$TRAVIS_BRANCH;
|
||||
fi &&
|
||||
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b $TRAVIS_BRANCH ~/src/buildscripts &&
|
||||
if [ -n "$encrypted_f92e8533f6f1_iv" ]; then
|
||||
openssl aes-256-cbc -K $encrypted_f92e8533f6f1_key -iv $encrypted_f92e8533f6f1_iv -in ci/keys.enc -out ci/keys -d &&
|
||||
tar xf ci/keys &&
|
||||
rm ci/keys &&
|
||||
mv ci/gpgsign ~/src/buildscripts &&
|
||||
gpg --batch --import ci/sign_ljt &&
|
||||
rm ci/sign_ljt;
|
||||
fi
|
||||
fi
|
||||
|
||||
script:
|
||||
- if [ "${BUILD_OFFICIAL:-}" != "" ]; then
|
||||
mkdir -p ~/src/ljt.nightly &&
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
mkdir $HOME/rpmkeys &&
|
||||
wget --no-check-certificate "http://www.libjpeg-turbo.org/key/LJTPR-GPG-KEY" -O $HOME/rpmkeys/LJTPR-GPG-KEY &&
|
||||
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:$TRAVIS_BRANCH bash -c "rpm --import /rpmkeys/LJTPR-GPG-KEY && ~/src/buildscripts/buildljt -d /root/src/libjpeg-turbo -v" &&
|
||||
sudo chown -R travis:travis ~/src/ljt.nightly &&
|
||||
mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
|
||||
else
|
||||
PATH=$PATH:~/src/gas-preprocessor ~/src/buildscripts/buildljt -d $TRAVIS_BUILD_DIR -v &&
|
||||
mv ~/src/ljt.nightly/latest/log-$TRAVIS_OS_NAME.txt ~/src/ljt.nightly/latest/files/;
|
||||
fi
|
||||
fi
|
||||
- if [ "${BUILD_OFFICIAL:-}" == "" ]; then
|
||||
mkdir build &&
|
||||
pushd build &&
|
||||
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE "-DCMAKE_C_FLAGS_RELWITHDEBINFO=$CFLAGS_RELWITHDEBINFO" $CMAKE_FLAGS .. &&
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo` &&
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS &&
|
||||
make test &&
|
||||
if [[ ! "${CMAKE_FLAGS[0]}" =~ "WITH_12BIT" &&
|
||||
! "${CMAKE_FLAGS[0]}" =~ "WITH_SIMD" &&
|
||||
"$TRAVIS_CPU_ARCH" = "amd64" ]]; then
|
||||
JSIMD_FORCESSE2=1 make test &&
|
||||
cmake -DFLOATTEST=no-fp-contract .. &&
|
||||
JSIMD_FORCENONE=1 make test;
|
||||
fi &&
|
||||
popd;
|
||||
fi
|
||||
|
||||
after_failure:
|
||||
- if [ "${BUILD_OFFICIAL:-}" == "" ]; then
|
||||
if [ -f $TRAVIS_BUILD_DIR/build/config.log ]; then
|
||||
cat $TRAVIS_BUILD_DIR/build/config.log;
|
||||
fi
|
||||
fi
|
||||
|
||||
deploy:
|
||||
- provider: s3
|
||||
bucket: libjpeg-turbo-pr
|
||||
access_key_id:
|
||||
secure: bmFEt4H90/oR/LiN9XI+G26Pd6hiyrTw3+Vg3lS4ynwAYk33weApaVM8CyzQTgIhGSPzFStqVm9fTrb3RmrYP/PnNS+/surOeWLkH2DMRxvc0qmetBuNx1+vAN7FUkY8MO/u5uE9WXHAdp4e64pXcLXEbKmh+wgDm72b35WmMxErtHsGbpqy+j47rQkY4BJGi7XQzjjafaamfm4PzitsjkYYsgX8KLI16jyJEIirvyDHCPTn9wKR/jSjelDl+xTlgZGuCqmLCBW8f6JgycIspWjcYfO4WpWvkbnnI2sl3rCMPvOYc4wHe8SwzG0l4tM1PblZZDRcU7vjE15PmNf1Xfq9Vx3RpgBJv+UBNL/Vn0rKdpUCeEcfC12hxrske8DWpV6waBiDivjQJreE+YRXqa5YBhV/EdkoKYCqafnJvRASlOko9evje8F9KXTNsIGTT1HPmU9QM9WoJwLs/Xa3t09EmA2IjhcuAvvUmwCTuBBQVAlDjExiTT3Zhc9IYZDD92JgpAYLgridtzR87ElOxKhTkR4PowdI6UiLYArPjMFTjoz5Rivb9qNpbLaQC8HCYgLWxpWtUTzlW/9rM8izHpF8ySFHjO6E2aA9OJFc0tcbEGwAs2jLGD01OduU+DbBfsIkW0EgfXCPbD3FVgHsn3tkuzgO/bg20SM7uuCEYKQ=
|
||||
secret_access_key:
|
||||
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=
|
||||
acl: public_read
|
||||
local-dir: $HOME/src/ljt.nightly/latest/files
|
||||
upload-dir: $TRAVIS_BRANCH/$TRAVIS_OS_NAME
|
||||
on:
|
||||
repo: libjpeg-turbo/libjpeg-turbo
|
||||
branch: 2.0.x
|
||||
condition: -n "$BUILD_OFFICIAL"
|
||||
BIN
ci/keys.enc
BIN
ci/keys.enc
Binary file not shown.
Reference in New Issue
Block a user