Skip to content

JNI: Guard against signed int overflow w/huge vals #14

JNI: Guard against signed int overflow w/huge vals

JNI: Guard against signed int overflow w/huge vals #14

Workflow file for this run

name: Build
on:
push:
branches:
- '**'
pull_request:
workflow_dispatch:
env:
LJT_VERSION: 3.1.3
LJT_GPG_KEY: https://raw.githubusercontent.com/libjpeg-turbo/repo/main/LJT-GPG-KEY
jobs:
linux:
runs-on: ubuntu-latest
steps:
- name: Set global environment variables
run: |
echo "BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}" >$GITHUB_ENV
echo "LJT_URL=https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LJT_VERSION" >>$GITHUB_ENV
- name: Check out code
uses: actions/checkout@v4
- name: Set up build
run: |
mkdir -p $HOME/src/tjj.nightly
docker pull dcommander/buildljt:$BRANCH
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b turbojpeg-java $HOME/src/buildscripts
mkdir $HOME/libjpeg-turbo-rpm
pushd $HOME/libjpeg-turbo-rpm
wget --no-check-certificate $LJT_URL/libjpeg-turbo-official-$LJT_VERSION.x86_64.rpm $LJT_URL/libjpeg-turbo-official-$LJT_VERSION.i386.rpm $LJT_URL/libjpeg-turbo-official-$LJT_VERSION.aarch64.rpm
popd
mkdir $HOME/rpmkeys
wget --no-check-certificate "$LJT_GPG_KEY" -O $HOME/rpmkeys/LJT-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/tjj.nightly:/root/src/tjj.nightly -v $HOME/src/buildscripts:/root/src/buildscripts -v $GITHUB_WORKSPACE:/root/src/turbojpeg-java -v $HOME/.gnupg:/root/.gnupg -v $HOME/libjpeg-turbo-rpm:/rpms -v $HOME/rpmkeys:/rpmkeys -t dcommander/buildljt:$BRANCH bash -c "rpm --import /rpmkeys/LJT-GPG-KEY && rpm -K /rpms/*.rpm && rpm -i /rpms/*86*.rpm && mkdir /opt/arm64 && pushd /opt/arm64 && rpm2cpio /rpms/*aarch64*.rpm | cpio -id && popd && ~/src/buildscripts/buildtjj -d /root/src/turbojpeg-java -v"
sudo chown -R runner:runner $HOME/src/tjj.nightly
mv $HOME/src/tjj.nightly/latest/log-${{github.job}}.txt $HOME/src/tjj.nightly/latest/files/
- name: Configure AWS
if: ${{github.event_name != 'pull_request'}}
uses: aws-actions/configure-aws-credentials@v4
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/tjj.nightly/latest/files/ s3://turbojpeg-java-pr/${{env.BRANCH}}/${{github.job}}/
macos:
runs-on: macos-15
steps:
- name: Set global environment variables
run: |
echo "BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}" >$GITHUB_ENV
echo "LJT_URL=https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LJT_VERSION" >>$GITHUB_ENV
- name: Check out code
uses: actions/checkout@v4
- name: Set up build
run: |
brew install yasm md5sha1sum
sudo xcode-select -s /Applications/Xcode_16.4.app
mkdir -p $HOME/src/tjj.nightly
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b turbojpeg-java $HOME/src/buildscripts
mkdir $HOME/libjpeg-turbo-dmg
pushd $HOME/libjpeg-turbo-dmg
wget --no-check-certificate $LJT_URL/libjpeg-turbo-$LJT_VERSION.dmg
hdid libjpeg-turbo-$LJT_VERSION.dmg
sudo installer -pkg /Volumes/libjpeg-turbo-$LJT_VERSION/libjpeg-turbo.pkg -target /
hdiutil detach /Volumes/libjpeg-turbo-$LJT_VERSION
rm *.dmg
popd
rmdir $HOME/libjpeg-turbo-dmg
- 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/buildtjj -d $GITHUB_WORKSPACE -v
mv $HOME/src/tjj.nightly/latest/log-${{github.job}}.txt $HOME/src/tjj.nightly/latest/files/
- name: Configure AWS
if: ${{github.event_name != 'pull_request'}}
uses: aws-actions/configure-aws-credentials@v4
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/tjj.nightly/latest/files/ s3://turbojpeg-java-pr/${{env.BRANCH}}/${{github.job}}/
windows:
runs-on: windows-2025
steps:
- name: Set global environment variables
shell: bash
run: |
echo "BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}" >$GITHUB_ENV
echo "LJT_URL=https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LJT_VERSION" >>$GITHUB_ENV
- name: Check out code
uses: actions/checkout@v4
- name: Set up build
shell: bash
run: |
set -x
mkdir -p c:/installers
if [ ! -f c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x64.exe ]; then
curl -fSL -o c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x64.exe $LJT_URL/libjpeg-turbo-$LJT_VERSION-vc-x64.exe
fi
c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x64.exe //S
if [ ! -f c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x86.exe ]; then
curl -fSL -o c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x86.exe $LJT_URL/libjpeg-turbo-$LJT_VERSION-vc-x86.exe
fi
c:/installers/libjpeg-turbo-$LJT_VERSION-vc-x86.exe //S
if [ ! -f c:/installers/OpenJDK8U-jdk_x86-32_windows_hotspot_8u452b09.zip ]; then
curl -fSL -o c:/installers/OpenJDK8U-jdk_x86-32_windows_hotspot_8u452b09.zip https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/OpenJDK8U-jdk_x86-32_windows_hotspot_8u452b09.zip
fi
7z x c:/installers/OpenJDK8U-jdk_x86-32_windows_hotspot_8u452b09.zip -o$ProgramData/Oracle > c:/installers/openjdk-x86.install.log
mv $ProgramData/Oracle/jdk8u452-b09 $ProgramData/Oracle/Java32
mkdir $ProgramData/Oracle/Java
ln -fs "$(cygpath "$JAVA_HOME_8_X64")" $ProgramData/Oracle/Java/javapath
git clone --depth=1 https://github.com/nathan818fr/vcvars-bash.git c:/vcvars-bash
git clone --depth=1 https://github.com/libjpeg-turbo/buildscripts.git -b turbojpeg-java c:/buildscripts
c:/msys64/usr/bin/pacman --noconfirm -S zip
- name: Configure GPG signing
if: ${{github.event_name != 'pull_request'}}
shell: bash
run: |
printf "${{secrets.GPG_KEY}}" | base64 --decode | gpg --batch --import -
echo "GPG_KEY_NAME=\"${{secrets.GPG_KEY_NAME}}\"" >c:/buildscripts/gpgsign
echo "GPG_KEY_ID=${{secrets.GPG_KEY_ID}}" >>c:/buildscripts/gpgsign
echo "GPG_KEY_PASS=${{secrets.GPG_KEY_PASS}}" >>c:/buildscripts/gpgsign
- name: Cache installers
uses: actions/cache@v4
with:
path: c:/installers
key: installers-${{github.job}}-${{env.BRANCH}}
- name: Build
shell: bash
run: |
export VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Enterprise\'
eval "$(c:/vcvars-bash/vcvarsall.sh amd64)"
export PATH=$PATH:/c/msys64/usr/bin
echo INCLUDE=$INCLUDE
echo LIB=$LIB
echo PATH=$PATH
c:/buildscripts/buildtjj -d $GITHUB_WORKSPACE -b /c/tjj.nightly -v
mv /c/tjj.nightly/log-${{github.job}}.txt /c/tjj.nightly/files/
- name: Configure AWS
if: ${{github.event_name != 'pull_request'}}
uses: aws-actions/configure-aws-credentials@v4
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'}}
shell: bash
run: |
aws s3 sync --acl public-read --delete c:/tjj.nightly/files s3://turbojpeg-java-pr/${{env.BRANCH}}/${{github.job}}/