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