Files
.pouch/skills/builder
laily f3cd56b78e feat: rename skills/skiff to pouch and move ACK state under .pouch
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.
2026-08-25 15:20:02 +08:00
..

builder

按统一契约完成项目的 DEB 包与 Docker 镜像构建和发布。规范本体见 references/contract.mdscripts/check.py 是契约的 可执行校验器。

什么时候使用

  • "帮我构建这个项目的 DEB / Docker 镜像"
  • "把 1.2.3 发布到包仓库 / 镜像仓库"
  • "检查这个项目的 Makefile 是否符合 builder 契约"
  • "看看项目现在的发布流程"

只构建不上传时明确说明即可;上传永远需要你显式授权。

项目接入契约

  1. 用 create-makefile skill 生成或修正 Makefile(目标 help/build/clean/version
    • 条件 deb/docker/push*,变量 ARCH/VERSION/DIST_DIR/PROJECT_NAME)。
  2. 运行 python3 -I -S <builder>/scripts/check.py . 直到全部 PASS。
  3. 在项目根 .env 配置发布环境变量:
DEB_SERVER_URL=https://deb.example.com
DEB_REPOSITORY=main
DEB_TOKEN=<token>            # 只放 .env 或密钥系统,不进 git
DOCKER_REGISTRY=registry.example.com
  1. 日常发布就是两条命令:make deb && make push-debmake 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。