Skip to content

Docker Publish

Docker Publish #4

name: Docker Publish
on:
workflow_dispatch:
inputs:
chosen-runner:
description: 'Choose the runner to use'
required: true
type: choice
default: 'ubuntu-latest'
options:
- 'ubuntu-latest'
- 'self-hosted'
push:
tags:
- 'v*'
env:
DOCKER_IMAGE: nicomt/ckron
jobs:
publish-docker:
runs-on: ${{ github.event_name == 'push' && 'ubuntu-latest' || inputs.chosen-runner }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_IMAGE }}
-
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64/v8,linux/ppc64le
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.DOCKER_IMAGE }}:buildcache
cache-to: type=registry,ref=${{ env.DOCKER_IMAGE }}:buildcache,mode=max