From 03dc285c3f6806a8a7531238d78d5aa12f0597f5 Mon Sep 17 00:00:00 2001 From: HAHWUL Date: Tue, 4 Feb 2025 23:45:19 +0900 Subject: [PATCH] refactor: rename workflows for clarity and update Docker build process Signed-off-by: HAHWUL --- .github/workflows/docker-image.yml | 2 +- .../{docker-publish.yml => ghcr_publish.yml} | 42 ++++++++----------- .github/workflows/go.yml | 2 +- 3 files changed, 20 insertions(+), 26 deletions(-) rename .github/workflows/{docker-publish.yml => ghcr_publish.yml} (68%) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 790210b8..01757258 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,4 +1,4 @@ -name: Docker build +name: CI Docker on: push: diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/ghcr_publish.yml similarity index 68% rename from .github/workflows/docker-publish.yml rename to .github/workflows/ghcr_publish.yml index 7bdb544b..58aecc0c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/ghcr_publish.yml @@ -1,26 +1,19 @@ -name: Docker +name: GHCR Publish on: push: - branches: [ main ] - # Publish semver tags as releases. - tags: [ 'v*.*.*' ] + branches: [main] + release: + types: [published] workflow_dispatch: - inputs: - tags: - description: 'Tags for the Docker image' - required: true - default: 'latest' env: # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io # github.repository as / IMAGE_NAME: ${{ github.repository }} - jobs: build: - runs-on: ubuntu-latest permissions: contents: read @@ -28,10 +21,9 @@ jobs: # This is used to complete the identity challenge # with sigstore/fulcio when running outside of PRs. id-token: write - steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Install the cosign tool except on PR # /~https://github.com/sigstore/cosign-installer @@ -39,17 +31,22 @@ jobs: if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@v3.1.1 with: - cosign-release: 'v2.1.1' + cosign-release: v2.1.1 + + # Using QEME for multiple platforms + # /~https://github.com/docker/build-push-action?tab=readme-ov-file#usage + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 # Workaround: /~https://github.com/docker/build-push-action/issues/461 - name: Setup Docker buildx - uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf + uses: docker/setup-buildx-action@v3 # Login against a Docker registry except on PR # /~https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -62,11 +59,6 @@ jobs: uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: ${{ github.event.inputs.tags }} - labels: | - type=ref,event=branch - type=semver,pattern={{version}} - type=raw,value=latest,enable={{is_default_branch}} # Build and push Docker image with Buildx (don't push on PR) # /~https://github.com/docker/build-push-action @@ -75,7 +67,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - platforms: linux/amd64,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} + push: true tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64, linux/arm64 + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 8937818b..83c0e020 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -1,4 +1,4 @@ -name: CI +name: CI Go on: push: branches: [ main ]