@@ -163,20 +163,52 @@ jobs:
163163 -N -C \
164164 -Q "CREATE DATABASE test COLLATE Latin1_General_100_CS_AS_SC_UTF8"
165165
166+ - name : Resolve latest ImageMagick release tag
167+ if : ${{ contains(inputs.extra-extensions, 'imagick') }}
168+ id : imagemagick-release
169+ env :
170+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
171+ run : |
172+ tag=$(gh release view --repo vintagesucks/imagemagick-deb --json tagName --jq .tagName)
173+ echo "tag=${tag}" >> "$GITHUB_OUTPUT"
174+
175+ - name : Cache ImageMagick debs
176+ if : ${{ contains(inputs.extra-extensions, 'imagick') }}
177+ id : imagemagick-cache
178+ uses : actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
179+ with :
180+ path : /tmp/imagemagick-debs
181+ key : imagemagick-debs-noble-amd64-${{ steps.imagemagick-release.outputs.tag }}
182+
166183 - name : Install latest ImageMagick
167184 if : ${{ contains(inputs.extra-extensions, 'imagick') }}
185+ env :
186+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
187+ IMAGEMAGICK_TAG : ${{ steps.imagemagick-release.outputs.tag }}
188+ IMAGEMAGICK_CACHE_HIT : ${{ steps.imagemagick-cache.outputs.cache-hit }}
168189 run : |
190+ if [ "$IMAGEMAGICK_CACHE_HIT" != 'true' ]; then
191+ echo "::group::Download ImageMagick debs ($IMAGEMAGICK_TAG)"
192+ mkdir -p /tmp/imagemagick-debs
193+ gh release download "$IMAGEMAGICK_TAG" \
194+ --repo vintagesucks/imagemagick-deb \
195+ --pattern '*noble_amd64*' \
196+ --dir /tmp/imagemagick-debs \
197+ --clobber
198+ echo "::endgroup::"
199+ else
200+ echo "Using cached ImageMagick debs ($IMAGEMAGICK_TAG)"
201+ fi
202+
203+ echo "::group::Install system packages"
169204 sudo apt-get update
170205 sudo apt-get install -y ghostscript poppler-data libmagickwand-dev
206+ echo "::endgroup::"
171207
172- # Install ImageMagick 7 with AVIF rw+ support (vintagesucks/imagemagick-deb)
173- RELEASE_JSON=$(curl -fsSL https://api.github.com/repos/vintagesucks/imagemagick-deb/releases/latest)
174- mkdir -p /tmp/imagemagick-debs
175- while IFS= read -r url; do
176- curl -fsSL "$url" -o "/tmp/imagemagick-debs/$(basename "$url")"
177- done < <(echo "$RELEASE_JSON" | jq -r '.assets[] | select(.name | contains("noble_amd64")) | .browser_download_url')
208+ echo "::group::Install ImageMagick 7 with AVIF rw+ support"
178209 sudo dpkg -i /tmp/imagemagick-debs/*.deb || true
179210 sudo apt-get install -f -y
211+ echo "::endgroup::"
180212
181213 - name : Checkout base branch for PR
182214 if : github.event_name == 'pull_request'
0 commit comments