feat(builder): load publish credentials from .env.builder

Keep DEB/Docker publish keys out of the project's .env. Scripts and
check.py --ready only read .env.builder; empty values count as missing.
This commit is contained in:
2026-08-25 16:58:56 +08:00
parent 10d8800f07
commit 681aa9e237
10 changed files with 109 additions and 46 deletions
+8 -5
View File
@@ -16,6 +16,9 @@ make -f makefile.builder <target>
不要把 builder 目标写进用户的 `Makefile``makefile``check.py` 只读
`makefile.builder`
发布凭据固定为项目根 `.env.builder`。不要把这些键写进用户的 `.env`。脚本不读取
`.env`
## 1. Make 目标
### 必备目标(所有项目)
@@ -113,9 +116,9 @@ include $(HOME)/.pouch/skills/builder/scripts/version.mk
| `IMAGE_TAG` | 否 | 默认由规范版本渲染:正式为 `X.Y.Z`;测试将 `~` 换成 `-`、`+g` 换成 `.g` |
| `PLATFORMS` | 否 | 默认 `linux/amd64`;多平台如 `linux/amd64,linux/arm64` |
配置来源优先级:shell 已显式设置的值 > 项目根 `.env` > 失败并询问用户。
`.env` 由 builder 脚本自动向上查找并加载(不回显任何值);当前 shell 已设置的值
优先于 `.env`。
配置来源优先级:shell 已显式设置的值 > 项目根 `.env.builder` > 失败并询问用户。
`.env.builder` 由 builder 脚本加载(不回显任何值);当前 shell 已设置的值优先。
不要读取或改写用户 `.env`。空值视为未配置。不要提交 `.env.builder`。
### 工作区安全
@@ -137,8 +140,8 @@ clone 到 `~/.pouch`。
`python3 -I -S <builder-scripts>/check.py <project-dir> [--build]` 对本项目逐条检查
上述要求,任一 FAIL 退出码非零,可直接挂 CI。`--build` 额外实构
`make -f makefile.builder deb` 并核对产物元数据(默认只静态检查配方)。`--ready`
额外检查轨道工具链,以及 `.env` / 环境中的发布键名是否存在(不读取、不打印值;
缺键只挡住发布)。校验失败时的修复路径:按 `templates/makefile.builder` 补齐或
额外检查轨道工具链,以及 `.env.builder` / 环境中的发布键名是否存在且非空(不读取、
不打印值;缺键只挡住发布)。校验失败时的修复路径:按 `templates/makefile.builder` 补齐或
修正 `makefile.builder`,再跑 check.py,不要绕过校验器,不要改用户 Makefile,
不要用 create-makefile(版本推导与本契约冲突)。