Build and publish Docker image #160
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/setup-qemu-action@v3.0.0 | |
- name: Setup buildx | |
uses: docker/setup-buildx-action@v3.3.0 | |
- name: Log in to DockerHub | |
uses: docker/login-action@v3.1.0 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Log in to the GitHub Packages container registry | |
uses: docker/login-action@v3.1.0 | |
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 }} |