Correct syntax in docker.yaml workflow #32
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 to test docker build. | |
# We explicitly do not push on pull requests (the job below is ended early). | |
# | |
# 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 | |
if: github.event_name != 'pull_request' | |
uses: docker/build-push-action@v4 | |
with: | |
push: true | |
labels: "gitsha1=${{ github.sha }}" | |
tags: "${{ steps.set-tag.outputs.tags }}" | |
platforms: linux/amd64,linux/arm64 | |
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache | |
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache,mode=max |