Correct syntax in docker.yaml workflow #35
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
# GitHub actions workflow which builds and publishes the docker images. | |
name: Build and push docker images | |
on: | |
push: | |
tags: ["v*"] | |
branches: [ main ] | |
workflow_dispatch: | |
# Run on pull requests so that the docker build is tested. | |
# | |
# We explicitly do not push on pull requests (see `if` conditionals and `push` | |
# attribute of `docker/build-push-action` below). This prevents us from filling | |
# up the container registries with in-progress builds. | |
# | |
# note: secrets will not be populated on pull requests from external authors. | |
pull_request: | |
permissions: | |
contents: read | |
packages: write | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Calculate docker image tag | |
id: set-tag | |
uses: docker/metadata-action@master | |
with: | |
images: | | |
ghcr.io/${{ github.repository }} | |
docker.io/${{ secrets.DOCKER_HUB_USERNAME }}/${{ github.event.repository.name }} | |
flavor: | | |
latest=false | |
tags: | | |
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }} | |
type=sha,prefix=,format=long | |
type=semver,pattern=v{{version}} | |
type=semver,pattern=v{{major}}.{{minor}} | |
- name: Log in to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- name: Log in to GHCR | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push all platforms | |
uses: docker/build-push-action@v4 | |
with: | |
# Always build, but don't push to container registries on PRs. | |
push: ${{ github.event_name != 'pull_request' }} | |
labels: "gitsha1=${{ github.sha }}" | |
tags: "${{ steps.set-tag.outputs.tags }}" | |
platforms: linux/amd64,linux/arm64 | |
cache-from: type=gha, | |
cache-to: type=gha,mode=max |