ci: isolate staging dependency install
This commit is contained in:
@@ -2536,3 +2536,19 @@
|
||||
- 相关记录:BUG-146、BUG-147
|
||||
- 复发自:无
|
||||
- 修复版本:2026-08-08 staging 变更
|
||||
|
||||
## BUG-149 | staging quality gate 宿主 npm ci 触发控制面持续 502 并被基础设施终止
|
||||
|
||||
- 状态:resolved(local candidate,远端 gate/deploy 待本提交)
|
||||
- 首次发现:2026-08-09
|
||||
- 最近更新:2026-08-09
|
||||
- 影响面:Gitea staging quality gate 的依赖安装阶段、`manman-linux` runner 与 Gitea/runner 控制面可用性;测试、lint、build、exact-SHA checkout/publish/deploy 合同未改变。
|
||||
- 用户现象:quality gate 在宿主机直接执行 `npm ci` 期间,Gitea 与 runner 控制面持续返回 502;步骤日志没有 npm 安装错误,任务最终由基础设施终止,无法进入后续远端 gate/deploy 收口。
|
||||
- 触发条件:self-hosted runner 在宿主环境执行无独立资源边界的 frontend `npm ci`,同时由共享控制面维持 job 调度、状态与日志链路。
|
||||
- 根因:依赖安装直接占用宿主资源且缺少 CPU、内存、swap、PID 与并发 socket 上限,故障证据落在 runner/控制面资源争用和基础设施终止边界,而不是 npm 包解析或安装错误。
|
||||
- 修复:仅将 `npm ci` 放入 digest-pinned Node 容器,并限制为 CPU 1.5、memory 2g、no swap、pids 256、`npm_config_maxsockets=4`;测试、lint、build 与 exact-SHA 行为保持原样,不扩大容器化范围,也不改变发布和部署信任边界。
|
||||
- 验证:本地 deployment contracts 45/45、workflow contracts 29/29;独立 review 无 P0/P1。远端 staging gate/deploy 待本提交后验证,本记录不提前声称远端收口。
|
||||
- 防复发:宿主依赖安装必须维持 digest-pinned Node runtime 和显式资源上限;合同测试需锁定只有 `npm ci` 在受限容器内执行,并持续确认测试、lint、build、exact-SHA checkout/publish/deploy 语义未漂移。
|
||||
- 相关记录:BUG-129、BUG-136、BUG-142
|
||||
- 复发自:无
|
||||
- 修复版本:待本次提交 / gate / deploy
|
||||
|
||||
Reference in New Issue
Block a user