发布流程
Agentdown 只从 Git tag 触发 npm 发布。普通 push 和 pull request 不持有发布权限。
一次性设置
agentdown 已存在于 npm,因此可以直接按 npm Trusted Publisher 官方说明在 package settings 配置:
- Provider:GitHub Actions
- Organization or user:
codexiaoke - Repository:
agentdown - Workflow filename:
release.yml - Environment:留空
- Allowed action:
npm publish
发布工作流使用 GitHub OIDC 短期凭证,不需要 NPM_TOKEN。配置成功并验证后,可以在 npm Publishing access 中禁止传统 token 发布。
GitHub main 分支建议要求以下 CI checks:
quality (Node 20.19.0)quality (Node 24)packagebrowser
每次发布
- 更新
package.json和package-lock.json版本。 - 更新
CHANGELOG.md。 - 本地运行
npm run release:check。 - 提交并推送,等待
ci全部通过。 - 创建与版本严格相等的 tag,例如
v0.1.0-rc.1,再推送 tag。
npm run release:verify -- v0.1.0-rc.1
git tag v0.1.0-rc.1
git push origin v0.1.0-rc.1release.yml 会重新安装依赖和三种浏览器,跑完整门禁,然后用 npm Trusted Publishing 发布。预发布版本自动使用 next dist-tag;稳定版本使用 latest。发布脚本会拒绝:
- tag 与
package.json版本不一致; - npm 上已经存在的不可变版本;
- GitHub workflow repository 与
package.json.repository不一致。
门禁包含什么
npm run release:check 包含:
- 65+ 文件的单元测试和 TypeScript/Vue 类型检查
- Google Chrome、Firefox、WebKit 真实浏览器流程
- 文档构建
- ESM/CJS、声明文件和三个公开 subpath 的 tarball 消费者构建
- 生产依赖 audit
- npm tarball 内容检查
这里的浏览器 fixture 是前端测试 transport;FastAPI 示例后端不被当作发布闭环。
npm run audit:production 是发布硬门禁,当前为 0。完整 npm audit 仍会报告 VitePress 1.6.4 内嵌的旧 Vite/esbuild 开发服务器链(2 moderate、1 high),npm 标记为无稳定修复版本; 它们不进入发布 tarball。仓库将 docs:dev 限制在 127.0.0.1,不要把文档开发服务器暴露到公网, 并由 Dependabot 继续跟踪上游稳定版修复。
发布后验证与回滚
确认 npm 的版本、dist-tag、仓库链接和 provenance 正确:
npm view agentdown version dist-tags repositorynpm 版本不可覆盖。如果 release candidate 有问题,应发布修复版本并把错误版本标记为 deprecated, 不要删除 Git tag 后重复使用同一个版本:
npm deprecate agentdown@0.1.0-rc.1 "Use a newer release candidate."