Skip to content

Commit 6338e05

Browse files
committed
fix: prevent API rate limiting on ImageMagick download
1 parent d0bb6b0 commit 6338e05

1 file changed

Lines changed: 38 additions & 6 deletions

File tree

.github/workflows/reusable-phpunit-test.yml

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)