Skip to content

Commit c9dcbd2

Browse files
authored
fix: prevent rate limiting in imagemagick pull from GitHub (#10146)
1 parent d0bb6b0 commit c9dcbd2

1 file changed

Lines changed: 39 additions & 10 deletions

File tree

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

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -163,20 +163,49 @@ 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: |
169-
sudo apt-get update
170-
sudo apt-get install -y ghostscript poppler-data libmagickwand-dev
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
171202
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')
178-
sudo dpkg -i /tmp/imagemagick-debs/*.deb || true
179-
sudo apt-get install -f -y
203+
echo "::group::Install ImageMagick 7 with AVIF rw+ support"
204+
sudo apt-get update
205+
sudo apt-get install -y \
206+
ghostscript poppler-data libmagickwand-dev \
207+
/tmp/imagemagick-debs/*.deb
208+
echo "::endgroup::"
180209
181210
- name: Checkout base branch for PR
182211
if: github.event_name == 'pull_request'

0 commit comments

Comments
 (0)