| name | release-package |
| description | 编译并打包 bookmarks 发版产物——全平台二进制包(tar.gz)、飞牛 fnapp 安装包(.fpk)、Docker 多架构镜像。当用户要求"打包""发版""编译全平台""打 fpk""构建 docker 镜像"时使用。 |
发版打包 (release-package)
bookmarks 是单文件 Go 应用(纯 Go 的 modernc sqlite 驱动,全程 CGO_ENABLED=0 交叉编译,无需 C 工具链)。本技能负责把它打成三类发版产物。
一键打包(首选)
bash scripts/build-release.sh
bash scripts/build-release.sh v3.1.0
产物全部输出到 release/v<版本>/:
bookmarks-v<版本>-<os>-<arch>.tar.gz — 6 个通用平台包(linux/macos/windows × amd64/arm64)
techfunway.bookmarks-v<版本>-x86.fpk — 飞牛 amd64 安装包
techfunway.bookmarks-v<版本>-arm64.fpk — 飞牛 arm64 安装包
build-release.sh 内部会:① 交叉编译 6 个 tar.gz;② 编译 fpk 所需的 linux 二进制(含 reset-password 工具)到 release/bookmarks-v<版本>-linux-<arch>/;③ 调用本技能的 scripts/fnapp_packager.sh 生成 fpk。
飞牛 fpk 打包细节(手动复现时必读)
- 依赖
fnpack 命令(飞牛官方打包工具,装在 /usr/local/bin/fnpack)。缺失时 build-release.sh 跳过 fpk,只产 tar.gz。
scripts/fnapp_packager.sh [--auto] [amd64|arm64] 从 release/bookmarks-v<版本>-linux-<arch>/ 读取 bookmarks 和 reset-password 两个可执行文件,复制进 techfunway.bookmarks/app/server/,按平台改写 techfunway.bookmarks/manifest 的 version/platform 字段后执行 fnpack build。
- manifest
platform 字段映射:amd64 → x86,arm64 → arm。
- 打包生成的
manifest.bak 由 build-release.sh 自动清理;techfunway.bookmarks/app/server/ 下的二进制已被 .gitignore 忽略。
- 发版前若有功能更新,记得手动更新
manifest 的 desc/changelog 字段(飞牛商店展示用)。
Docker 多架构镜像(按需)
bash .claude/skills/release-package/scripts/docker_builder.sh
- 用
docker buildx 构建 linux/amd64,linux/arm64 多架构镜像
- 镜像名
techfunways/bookmarks:v<版本> 和 :latest
- 脚本默认仅本地构建不推送;推送到 registry 需自行
docker push
- 镜像只含二进制,不含 static(已 embed 进二进制)
上传发布
release/ 不入 git(构建产物),手动作为 Gitee/GitHub Release 附件上传
- fpk 包上传飞牛应用商店
- 完整发版流程(含版本号/文档更新)见根目录
CLAUDE.md 的「发版工作流」