diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index e3be9f65..47266f57 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -2,14 +2,52 @@ name: Docker Image CI on: [push, pull_request] +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + jobs: docker-build: - runs-on: ubuntu-latest - + permissions: + contents: read + packages: write steps: - name: Checkout uses: actions/checkout@v4 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag spellcheck:$(date +%s) + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2.0.0 + with: + image: tonistiigi/binfmt:qemu-v6.2.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + with: + install: true + + - name: Login to GitHub Registry + uses: docker/login-action@v1.10.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Metadata for the image + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + + - name: Build container + uses: docker/build-push-action@v2.7.0 + with: + platforms: "linux/amd64, linux/arm64" + context: . + push: true + tags: ${{ steps.meta.outputs.tags }}