Cache libimagequant

This commit is contained in:
Hugo van Kemenade 2024-01-21 01:15:59 +02:00
parent 0b6c7ba49e
commit 97d24f14a5
3 changed files with 47 additions and 8 deletions

View File

@ -44,11 +44,19 @@ jobs:
- name: Build system information
run: python3 .github/workflows/system-info.py
- name: Cache libimagequant
uses: actions/cache@v4
id: cache-libimagequant
with:
path: ~/cache-libimagequant
key: ${{ runner.os }}-libimagequant-${{ hashFiles('depends/install_imagequant.sh') }}
- name: Install Linux dependencies
run: |
.ci/install.sh
env:
GHA_PYTHON_VERSION: "3.x"
GHA_LIBIMAGEQUANT_CACHE_HIT: ${{ steps.cache-libimagequant.outputs.cache-hit }}
- name: Build
run: |

View File

@ -75,12 +75,21 @@ jobs:
- name: Build system information
run: python3 .github/workflows/system-info.py
- name: Cache libimagequant
if: startsWith(matrix.os, 'ubuntu')
uses: actions/cache@v4
id: cache-libimagequant
with:
path: ~/cache-libimagequant
key: ${{ runner.os }}-libimagequant-${{ hashFiles('depends/install_imagequant.sh') }}
- name: Install Linux dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
.ci/install.sh
env:
GHA_PYTHON_VERSION: ${{ matrix.python-version }}
GHA_LIBIMAGEQUANT_CACHE_HIT: ${{ steps.cache-libimagequant.outputs.cache-hit }}
- name: Install macOS dependencies
if: startsWith(matrix.os, 'macOS')

View File

@ -1,15 +1,37 @@
#!/bin/bash
# install libimagequant
archive=libimagequant-4.2.2
archive_name=libimagequant
archive_version=4.2.2
./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/main/$archive.tar.gz
archive=$archive_name-$archive_version
pushd $archive/imagequant-sys
if [[ "$GHA_LIBIMAGEQUANT_CACHE_HIT" == "true" ]]; then
cargo install cargo-c
cargo cinstall --prefix=/usr --destdir=.
sudo cp usr/lib/libimagequant.so* /usr/lib/
sudo cp usr/include/libimagequant.h /usr/include/
# Copy cached files into place
sudo cp ~/cache-$archive_name/libimagequant.so* /usr/lib/
sudo cp ~/cache-$archive_name/libimagequant.h /usr/include/
popd
else
# Build from source
./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/main/$archive.tar.gz
pushd $archive/imagequant-sys
time cargo install cargo-c
time cargo cinstall --prefix=/usr --destdir=.
# Copy into place
sudo cp usr/lib/libimagequant.so* /usr/lib/
sudo cp usr/include/libimagequant.h /usr/include/
# Copy to cache
rm -rf ~/cache-$archive_name
mkdir ~/cache-$archive_name
cp usr/lib/libimagequant.so* ~/cache-$archive_name/
cp usr/include/libimagequant.h ~/cache-$archive_name/
popd
fi