Update base images for PyFR and SPH-EXA #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Transformers Benchmark Multi-Arch | |
| on: | |
| push: | |
| paths: | |
| - 'hpc/benchmarks/transformers/Containerfile' | |
| permissions: | |
| contents: write | |
| packages: write | |
| actions: read | |
| env: | |
| REGISTRY: ghcr.io | |
| OWNER: ${{ github.repository_owner }} | |
| REPO: ${{ github.repository }} | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - service: transformers | |
| arch: amd64 | |
| runner: ubuntu-latest | |
| - service: transformers | |
| arch: arm64 | |
| runner: ubuntu-24.04-arm | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Detect Containerfile changes | |
| id: filter | |
| uses: dorny/paths-filter@v3 | |
| with: | |
| filters: | | |
| changed: | |
| - 'hpc/benchmarks/transformers/Containerfile' | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| id: buildx | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build & push single-arch image | |
| if: steps.filter.outputs.changed == 'true' | |
| run: | | |
| IMAGE="${{ env.REGISTRY }}/${{ env.REPO }}/${{ matrix.service }}" | |
| CTX="hpc/benchmarks/${{ matrix.service }}" | |
| docker buildx build \ | |
| --no-cache \ | |
| --builder "${{ steps.buildx.outputs.name }}" \ | |
| --platform linux/${{ matrix.arch }} \ | |
| --file hpc/benchmarks/${{ matrix.service }}/Containerfile \ | |
| --tag "${IMAGE}:latest-${{ matrix.arch }}" \ | |
| --push \ | |
| "${CTX}" | |
| manifest: | |
| needs: build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| service: [transformers] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Verify single-arch images exist | |
| run: | | |
| set -euo pipefail | |
| REPO="${{ env.REGISTRY }}/${{ env.REPO }}/${{ matrix.service }}" | |
| for ARCH in amd64 arm64; do | |
| IMG="${REPO}:latest-${ARCH}" | |
| echo "inspecting $IMG" | |
| if ! docker buildx imagetools inspect "$IMG" > /dev/null; then | |
| echo "::error file=manifest.yml::Image not found: $IMG" | |
| exit 1 | |
| fi | |
| done | |
| - name: Create & push multi-arch manifest | |
| run: | | |
| REPO="${{ env.REGISTRY }}/${{ env.REPO }}/${{ matrix.service }}" | |
| docker buildx imagetools create \ | |
| --tag "${REPO}:latest" \ | |
| "${REPO}:latest-amd64" \ | |
| "${REPO}:latest-arm64" | |