f3cd56b78e
Use ~/.pouch, the pouch CLI, and .pouch.yaml as the SSOT container. Keep the inner skills/ packages, and store ACK project state in .pouch/ack instead of docs/ack.
builder
按统一契约完成项目的 DEB 包与 Docker 镜像构建和发布。规范本体见
references/contract.md,scripts/check.py 是契约的
可执行校验器。
什么时候使用
- "帮我构建这个项目的 DEB / Docker 镜像"
- "把 1.2.3 发布到包仓库 / 镜像仓库"
- "检查这个项目的 Makefile 是否符合 builder 契约"
- "看看项目现在的发布流程"
只构建不上传时明确说明即可;上传永远需要你显式授权。
项目接入契约
- 用 create-makefile skill 生成或修正 Makefile(目标
help/build/clean/version- 条件
deb/docker/push*,变量ARCH/VERSION/DIST_DIR/PROJECT_NAME)。
- 条件
- 运行
python3 -I -S <builder>/scripts/check.py .直到全部 PASS。 - 在项目根
.env配置发布环境变量:
DEB_SERVER_URL=https://deb.example.com
DEB_REPOSITORY=main
DEB_TOKEN=<token> # 只放 .env 或密钥系统,不进 git
DOCKER_REGISTRY=registry.example.com
- 日常发布就是两条命令:
make deb && make push-deb、make push-docker。
使用示例
用 builder 检查这个项目的 Makefile 是否符合契约。
用 builder 构建当前版本的 DEB 和镜像,先不要上传。
用 builder 把 dist/example_1.2.3_amd64.deb 发布到项目已配置的测试仓库。
用 builder 发布多平台 linux/amd64,linux/arm64 镜像。
脚本一览
| 脚本 | 用途 |
|---|---|
scripts/check.py |
校验项目 Makefile 是否符合契约(--build 实构核对产物) |
scripts/upload_deb.sh |
上传 .deb 到 HTTP 包仓库(multipart package/token/repository_name) |
scripts/publish_docker.sh |
buildx 构建 + 推送镜像,远端 digest 验证 |
scripts/verify_deb.sh |
核对包元数据、内容与 SHA-256 |
环境变量契约、脚本解析顺序($BUILDER_SKILL_DIR → ~/.pouch/skills/builder/scripts/)、
脏工作树策略等完整规则见 contract.md。