diff --git a/.gitea/workflows/reusable/node-quality.yml b/.gitea/workflows/reusable/node-quality.yml index a9b2cb2..328a385 100644 --- a/.gitea/workflows/reusable/node-quality.yml +++ b/.gitea/workflows/reusable/node-quality.yml @@ -13,7 +13,7 @@ # the primary (and only) cache layer # # Conventions proven on the business-repo pipelines: -# - runs-on: build-docker (host job, root) + docker run for the toolchain +# - runs-on: build-docker (host job, NON-ROOT user gitea-runner) + docker run for the toolchain # - CA: GIT_SSL_CAINFO (host git) + SSL_CERT_FILE/NODE_EXTRA_CA_CERTS (container; # helper images have their apt/apk sources baked in, so replacing the public # trust store is safe here — see playbook pitfall 13) diff --git a/README.md b/README.md index 0d11d1c..e3926c6 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,10 @@ jobs: - 2026-08-27 定稿:曾按初版决策试建 est/ci-workflows,因 est org 私有闸门不可跨仓调用而删除(用户改批 mu-ref 宿主);同日自 est/Est-Infra 上移 tools/ci。 - 2026-08-29 v3:模板 checkout 恢复 mu-ref/actions-checkout@v4(JS action)+ HEAD==SHA postcondition——P1-10 的 JS 迁移(est/Est-Infra@57cc9f7,08-27 09:39)在 08-27 12:07 上移建仓时被回退为 P1-7 host-clone fallback 血统,v3 恢复并经 Seabed 私仓探针验证;无调用方的孤儿模板 `reusable/checkout.yml` 删除(reusable 不可嵌套调用,其守卫已内联进两个模板)。 - helper Dockerfile 的可复现 bake 与 ops 巡检脚本仍属项目级(Est-Infra / gitea-host-setup)。 + +## Runner contract(2026-08-30 定死) + +- **唯一 runner:TN `tn-build-runner`(gitea-runner v3.3.1,注册号 est org 范围)**;TS 只承载 Gitea/Registry,无任何 runner;0.6.1/act_runner 已全部清除,禁止回潮。 +- 服务:TN `gitea-runner.service`,**非 root 用户 `gitea-runner`**(docker 组,host docker socket 经组权限),capacity=1,工作区 `/data/ci-workspace`,缓存 `/data/actcache` 与 `/data/cache/ci`。 +- Labels(均 host 模式):`build-docker`(存量 workflow 兼容)与 `est-tn-v3`(新 workflow 请用这个带版本的)。 +- 注册令牌:注册完成后即重置;凭据 `/opt/act-runner/.runner` 0600,目录 0700。