diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 23ca067..5d97bd2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,14 +9,41 @@ env: jobs: build: name: Build + runs-on: ${{ matrix.runs-on }} + strategy: + matrix: + arch: [amd64, arm64, armv7] + include: + - arch: amd64 + runs-on: ubuntu-latest + - arch: arm64 + runs-on: ubuntu-latest + # One day, when ARM based Github Hosted Runners are GA... + # https://github.com/github/roadmap/issues/970 + # runs-on: ubuntu-latest-arm64 + - arch: arm/v7 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: docker/setup-qemu-action@v3 + if: ${{ matrix.arch != 'amd64' }} + - uses: docker/setup-buildx-action@v3 + - uses: docker/build-push-action@v6 + with: + platforms: linux/${{ matrix.arch }} + push: false + cache-from: | + type=gha,scope=docker-build-${{ matrix.arch }} + cache-to: | + type=gha,mode=max,scope=docker-build-${{ matrix.arch }} + context: . + combine: + needs: [build] runs-on: ubuntu-latest permissions: contents: read packages: write steps: - - uses: actions/checkout@v4 - - uses: docker/setup-qemu-action@v3 - - uses: docker/setup-buildx-action@v3 - uses: docker/login-action@v3 with: registry: ghcr.io @@ -42,5 +69,10 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: | + type=gha,scope=docker-package + type=gha,scope=docker-build-amd64 + type=gha,scope=docker-build-arm64 + type=gha,scope=docker-build-armv7 + cache-to: | + type=gha,mode=max,scope=docker-package