Build and publish Docker image #103
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 | |
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@v5 | |
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@v5 | |
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 }} |