♻️ refactor(ci): use fixed workflow slots

This commit is contained in:
csh
2026-07-16 09:17:05 +08:00
parent 778297543a
commit 610c2b3e74
7 changed files with 210 additions and 570 deletions
+6 -5
View File
@@ -20,13 +20,14 @@
## 🧱 运行模型
本模板中的 workflow 采用“Git bare 镜像 + 工作副本”的方案:
本模板中的 workflow 采用“按职责划分固定 slot”的方案:
- Git bare 镜像作为共享仓库缓存,负责复用仓库对象,避免大仓库在每次运行时都重新完整拉取
- 每个 job 都在自己的独立工作副本中执行,避免并发任务之间互相污染工作目录
- 任务结束后会清理独立工作副本,只保留共享缓存用于后续加速
- 每个会写仓库的 workflow 职责拥有一个固定 slotslot 本身就是 Git clone 根目录,不额外包含 `repo` 子目录
- 第一次运行会 clone 仓库,后续运行通过 fetch、`git reset --hard` 和 clean 重置后复用已有 checkout
- 同一 slot 的任务按 concurrency group 串行执行,不同 slot 之间可以并发运行
- 任务结束后保留 slot checkout;长期依赖缓存应放在 checkout 之外,避免被清理命令删除
这个设计的目标是同时兼顾大仓库场景下的同步效率和多 job 并发执行时的隔离性
这个设计适用于仓库和 workflow 职责固定的自托管 CI 服务器,在减少重复 clone 的同时避免多个任务并发修改同一个工作目录
---