fix: build arm64 images on native runners (#419)

## Summary
- build arm64 Docker images on native GitHub arm runners instead of QEMU
- create Sentry release in deploy job so deploy no longer races registry
publishing

## Verification
- php artisan test --compact tests/Feature/SentryConfigTest.php
- vendor/bin/pint --dirty --format agent
- yq parsed .github/workflows/ci.yml
- git diff --check
This commit is contained in:
Víctor Falcón 2026-05-22 16:05:48 +01:00 committed by GitHub
parent 44116010de
commit 364c72db72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 6 deletions

View File

@ -445,7 +445,7 @@ jobs:
cache-to: type=gha,mode=max,scope=production
build-arm64-images:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-arm
timeout-minutes: 75
needs: build-image
if: needs.build-image.result == 'success'
@ -458,11 +458,6 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@ -634,6 +629,20 @@ jobs:
if: steps.deploy_guard.outputs.should_deploy == 'true'
run: curl -sL https://sentry.io/get-cli/ | bash
- name: Create Sentry release
if: steps.deploy_guard.outputs.should_deploy == 'true'
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
run: |
if ! sentry-cli releases info "$SENTRY_RELEASE" >/dev/null 2>&1; then
sentry-cli releases new "$SENTRY_RELEASE"
fi
sentry-cli releases set-commits "$SENTRY_RELEASE" --auto --ignore-missing
sentry-cli releases finalize "$SENTRY_RELEASE"
- name: Mark Sentry release deployed
if: steps.deploy_guard.outputs.should_deploy == 'true'
env:

View File

@ -9,5 +9,6 @@ it('does not wait for registry image publishing before marking a sentry deploy',
expect($workflow)
->toContain("deploy:\n runs-on: ubuntu-latest\n needs: [tests, linter, static-analysis, performance-tests, changes]")
->toContain('sentry-cli releases new "$SENTRY_RELEASE"')
->toContain('run: sentry-cli releases deploys "$SENTRY_RELEASE" new -e production');
});