build/deploy workflow 加 concurrency cancel-in-progress
Build Docker Image / build (push) Has been cancelled

并发组 = workflow name + ref。同分支连续 push 时:
- 新 run 入组发现已有 in-progress run → 立即取消旧的,新的开跑
- 最终只构建 + 部署最新代码,省 CI 时间
- 不同分支的 build/deploy 互不干扰(虽然当前只 custom 用)
- build 与 deploy 是两个独立 workflow name,互不影响(build 跑时
  deploy 不会被取消,反之亦然)

CLAUDE.md 同步加"并发取消策略"段说明该行为。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-02 21:18:39 +08:00
parent 72c64b5fee
commit 950e10a13c
3 changed files with 19 additions and 2 deletions
+7
View File
@@ -9,6 +9,13 @@ on:
# 手动触发:保留作为应急通道(重新部署当前镜像 / 跑临时脚本)
workflow_dispatch:
# 并发控制:连续多次 build 完成时,最新那次的 deploy 会取消旧的 in-progress
# deploy。避免老镜像被 docker compose up -d 临时切换到、又立即被新镜像覆盖
# 的窗口期,保证 ezbookkeeping 容器最终运行的是最新代码
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy:
runs-on: ubuntu-latest