Skip to content
Merged
101 changes: 45 additions & 56 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,45 @@
# name: Build and Push Docker Image
#
# on:
# push:
# tags: ['v*']
# pull_request:
# branches: [main]
#
# env:
# REGISTRY: ghcr.io
# IMAGE_NAME: ${{ github.repository }}
#
# jobs:
# build-and-push:
# runs-on: ubuntu-latest
# permissions:
# contents: read
# packages: write
#
# steps:
# - name: Checkout repository
# uses: actions/checkout@v6.0.2
#
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3.12.0
#
# - name: Log in to Container Registry
# if: github.event_name != 'pull_request'
# uses: docker/login-action@v3.6.0
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
#
# - name: Extract metadata (tags, labels)
# id: meta
# uses: docker/metadata-action@v5.10.0
# with:
# images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# tags: |
# type=ref,event=branch
# type=ref,event=pr
# type=semver,pattern={{version}}
# type=semver,pattern={{major}}.{{minor}}
# type=sha,prefix=
#
# - name: Build and push Docker image
# uses: docker/build-push-action@v6.18.0
# with:
# context: .
# push: ${{ github.event_name != 'pull_request' }}
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
# cache-from: type=gha
# cache-to: type=gha,mode=max
# platforms: linux/amd64,linux/arm64
name: Build and Push Docker Image

on:
workflow_dispatch:
inputs:
tag:
description: 'Docker image tag'
required: true
type: string

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3.6.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ inputs.tag }}
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64