From f06540883b41d03782bb6b2c4150f298f328c6b6 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Tue, 11 Aug 2026 11:09:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=F0=9F=90=9B:=20=E4=BF=AE=E5=A4=8D=20Docker?= =?UTF-8?q?=20=E9=95=9C=E5=83=8F=E5=8F=91=E5=B8=83=E7=9A=84=20tag=20?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if 表达式中不应使用 ${{ }} 包裹:startsWith(${{github.ref}}, 'refs/tags/') 会先将 github.ref 替换为裸字符串再参与表达式求值,导致条件判断失效, 使得每次 push 到 master 都会构建并推送镜像至 ghcr.io,而非仅在打 tag 时发布。 同时 on.push 缺少 tags 配置,打 tag 实际不会触发该工作流。 修正后:push 分支仅执行 Go 构建,打 tag 才发布镜像。 --- .github/workflows/go.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 03a3bd6e..1bdb57e1 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -3,6 +3,7 @@ name: build on: push: branches: [ master, dev ] + tags: [ 'v*', '[0-9]*' ] pull_request: branches: [ master ] env: @@ -32,11 +33,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0 - if: startsWith(${{github.ref}}, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') - name: Log in to the Container registry uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - if: startsWith(${{github.ref}}, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -44,7 +45,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - if: startsWith(${{github.ref}}, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -57,7 +58,7 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 - if: startsWith(${{github.ref}}, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') with: context: . file: scripts/Dockerfile