Skip to content

Instantly share code, notes, and snippets.

@mvanholsteijn
Last active July 7, 2022 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvanholsteijn/96c09b2fe5f4b45daef3b934eecbed78 to your computer and use it in GitHub Desktop.
Save mvanholsteijn/96c09b2fe5f4b45daef3b934eecbed78 to your computer and use it in GitHub Desktop.
generic Github Action workflow to create and publish a container image to ghcr.io
---
name: Create and publish a Docker image
"on":
push:
tags:
- '*'
branches:
- 'main'
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
-
name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 0
-
name: Get tag
id: repository
run: echo "::set-output name=tag::$(git describe --tags HEAD)"
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/${{ github.repository }}:${{ steps.repository.outputs.tag }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment