SuperAPI AI 工具集

release

部署与运维

查看项目

更新于 10-15 14:39

技能介绍

用途

本技能用于执行 Cyrus CLI 的协调发布流程,覆盖准备、验证、发布与收尾。当用户要求发布 Cyrus、发布 cyrus-ai、运行 CLI 发布或执行类似操作时使用。

前置要求

在执行任何发布操作前,必须完整阅读 apps/cli/RELEASING.md,将其视为权威操作指南;并将 scripts/release-packages.mjs 视为权威的包列表与依赖顺序来源。

注意:编辑发布工作流、脚本、安装器或发布文档并不会触发本发布流程。这类改动应通过针对性检查以及 skills/f1-test-drive/SKILL.md 中的 F1 适用性策略进行验证。

工作流

  1. 获取 origin/main,从当前 main 开始,并保留无关的本地改动。
  2. 在分支上准备发布:
    • 将两个 changelog 的 Unreleased 条目移入新版本。
    • 在 node scripts/release-packages.mjs list 打印的每个 manifest 中设置相同版本。
    • 运行 pnpm install,并提交任何 lockfile 变更。
  3. 使用权威 F1 适用性策略评估自上一版本以来的全部变更内容,包括在版本号提升 PR 之前合并的功能性改动。对于 F1 覆盖的行为变更,运行相关 F1 场景并保存证据,文件名需带 -release-v<version>.md 后缀。否则按 apps/cli/RELEASING.md 记录变更评估与针对性检查作为非 F1 发布验证;不要虚构 F1 报告。
  4. 在 CHANGELOG.md 中列出每个已发布包的 package@version。
  5. 运行 node scripts/release-packages.mjs validate <version>,然后运行 apps/cli/RELEASING.md 要求的所有检查。继续前修复失败项。
  6. 提交、推送、打开发布 PR,并在派发工作流前将其合并到 main。绝不发布未合并的源码或非 main 引用。
  7. 从 main 以 dry-run 模式派发 .github/workflows/release-cli.yml,并监控至完成。
  8. 仅当用户明确要求正式发布时,才以 dry_run=false 派发完全相同的版本。监控其完成 npm 发布、git 打标签与 GitHub Release 创建。
  9. 独立验证 npm 上的版本,并运行已发布 CLI 的 --version 命令。
  10. 使用 Linear 集成,将该版本 changelog 部分引用的每个 issue 从 MergedUnreleased 移动到 ReleasedMonitoring。

安全要求

  • 绝不添加 npm token。发布必须使用 GitHub Actions OIDC。
  • 在首次正式工作流运行前,确认每个 npm 包都信任 cyrusagents/cyrus 与 release-cli.yml。
  • dry run 不会向 npm 认证,也不能证明注册表写入成功。
  • 绝不盲目重跑部分发布的版本。npm 版本不可变;应检查哪些包已发布并谨慎恢复。
  • 在每个包都发布之前,不要创建或移动发布标签。标签与 GitHub Release 创建由工作流负责。

适用场景

适用于 Cyrus CLI 的版本发布操作,包括准备 changelog、统一版本号、验证包、通过受信任工作流发布、验证 npm 版本以及更新 Linear issue 状态。

限制

  • 必须遵循 apps/cli/RELEASING.md 与 scripts/release-packages.mjs 的权威内容。
  • 不得手动发布工作区包。
  • 不得添加 npm token。
  • 不得发布未合并源码或非 main 引用。
  • 不得虚构 F1 报告。
  • 正式发布需用户明确请求。
  • 关于具体版本号、发布时间、价格或平台支持等未在资料中提供的信息,暂未提供。