feat: update

This commit is contained in:
2026-08-25 15:26:29 +08:00
parent 03d6298145
commit 4423e7df1a
9 changed files with 661 additions and 21 deletions
+8 -5
View File
@@ -48,7 +48,7 @@ fallback;成功交付一次后引导用户迁移到契约。
- 认证令牌已通过环境变量或密钥系统提供;绝不写入命令输出、文件、提交或回复,
不用 `set -x` 执行含凭据的命令。
- 相同版本是否允许覆盖;无法确认且可能覆盖时,先询问。
- Docker 轨道需要用户已明确指定目标 registry/repository/tag 后才继续
- Docker 轨道需要已确定 registry/repositorytag 未给出时按契约「版本号」推导
脏工作树默认拒绝发布;用户明确接受时设置 `ALLOW_UNCOMMITTED=1` 并在汇报中注明
包含的未提交修改。
@@ -60,9 +60,11 @@ make build ARCH=<amd64|arm64> VERSION=<version> # 主产物
make deb ARCH=<amd64|arm64> # DEB 项目
```
版本缺省由 make 从 `git describe --tags --always --dirty` 推导。构建目标若会自动
上传而当前仅获构建授权,改用纯构建目标。执行前确认所需工具可用(docker、
dpkg-deb 等)。不得擅自清理宽泛目录;脚本含 `rm -rf` 时先解析确认为受限构建目录。
版本缺省按契约「版本号」从 Git 祖先稳定 tag 推导(正式 = HEAD exact-match
`vX.Y.Z`;测试 = `X.Y.Z~分支.距离+gSHA`)。不要调用 manage-release 来算
产物版本,不要用全仓库最新 tag。构建目标若会自动上传而当前仅获构建授权,改用
纯构建目标。执行前确认所需工具可用(docker、dpkg-deb 等)。不得擅自清理宽泛
目录;脚本含 `rm -rf` 时先解析确认为受限构建目录。
### 3. 上传前检查
@@ -120,7 +122,8 @@ rg -n -i --hidden --glob '!.git' \
## 修改 builder 自身时
- 上传/发布脚本是 SSOT:通用行为修改落在 `skills/builder/scripts/`,不同步复制到
业务项目。
业务项目。产物版本只通过 `scripts/version.sh` 推导,不要在项目 Makefile 内联
`git describe``sort -V`
- 契约变更先改 `scripts/check.py`,再同步 `references/contract.md`
- 可用 `bash -n` 检查脚本语法;有 ShellCheck 时一并运行。
- 不通过真实生产上传测试脚本,除非用户明确授权并给出测试版本/仓库。