diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 23ca067..763cdb1 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,6 +9,40 @@ env: jobs: build: name: Build + runs-on: ${{ matrix.runs-on }} + strategy: + matrix: + arch: [amd64, arm64, armv7] + include: + - arch: amd64 + runs-on: ubuntu-latest + platform: linux/amd64 + - arch: arm64 + runs-on: ubuntu-latest + platform: linux/arm64 + # One day, when ARM based Github Hosted Runners are GA... + # https://github.com/github/roadmap/issues/970 + # runs-on: ubuntu-latest-arm64 + - arch: armv7 + runs-on: ubuntu-latest + platform: linux/arm/v7 + 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: ${{ matrix.platform }} + push: false + cache-from: | + type=gha,scope=docker-build-${{ matrix.arch }} + cache-to: | + type=gha,mode=max,scope=docker-build-${{ matrix.arch }} + context: . + combine: + name: Combine + needs: [build] runs-on: ubuntu-latest permissions: contents: read @@ -42,5 +76,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