build/deploy workflow 加 concurrency cancel-in-progress
并发组 = workflow name + ref。同分支连续 push 时: - 新 run 入组发现已有 in-progress run → 立即取消旧的,新的开跑 - 最终只构建 + 部署最新代码,省 CI 时间 - 不同分支的 build/deploy 互不干扰(虽然当前只 custom 用) - build 与 deploy 是两个独立 workflow name,互不影响(build 跑时 deploy 不会被取消,反之亦然) CLAUDE.md 同步加"并发取消策略"段说明该行为。
This commit is contained in:
@@ -26,6 +26,14 @@ on:
|
||||
required: false
|
||||
default: ''
|
||||
|
||||
# 并发控制:同一分支的连续 push 只跑最新的,旧 in-progress run 会被取消
|
||||
# 例:连续 3 次 push,第 1 次 build 跑了 30s,第 2 次开始 → 取消第 1,第 2 跑;
|
||||
# 期间第 3 次又来 → 取消第 2,第 3 跑。最后只构建出最新代码,省 CI 时间。
|
||||
# group 包含 ref 是为了不同分支的 build 互不干扰(虽然当前只有 custom 用)
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user