Build and publish Docker image #235
This file contains 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
# Build for amd64 and arm64 and publish to DockerHub and GitHub Packages | |
# The :beta image is automatically re-built and pushed fortnightly to include changes to upstream images | |
name: Build and publish Docker image | |
on: | |
release: | |
types: | |
- 'published' | |
push: | |
branches: | |
- 'main' | |
tags: | |
- 'v*' | |
schedule: | |
- cron: "37 1 */1,*/14 * *" | |
jobs: | |
push_to_registries: | |
name: Push Docker image to multiple registries | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
- name: Setup QEMU | |
uses: docker/[email protected] | |
- name: Setup buildx | |
uses: docker/[email protected] | |
- name: Log in to DockerHub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Log in to the GitHub Packages container registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: | | |
fetzu/teslamate-abrp | |
ghcr.io/${{ github.repository }} | |
tags: | | |
type=semver,pattern={{version}} | |
- name: Build and push Docker images for releases | |
if: github.event_name == 'release' | |
uses: docker/build-push-action@v6 | |
with: | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: | | |
${{ steps.meta.outputs.tags }}, | |
fetzu/teslamate-abrp:latest, | |
ghcr.io/${{ github.repository }}:latest | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Build and push Docker image with 'beta' tag | |
if: github.ref == 'refs/heads/main' | |
uses: docker/build-push-action@v6 | |
with: | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: true | |
tags: | | |
fetzu/teslamate-abrp:beta, | |
ghcr.io/${{ github.repository }}:beta | |
labels: ${{ steps.meta.outputs.labels }} |