| Files | Last commit | Last update |
|---|---|---|
fix(ci): 改用 GitHub Release 事件触发发布 push tag 触发器在本仓库链路上行不通:Gitee 镜像同步 tag 时走 GitHub API 写 ref,并非真实 git push,故不产生 push 事件。实测 tag 与分支均已同步 (git ls-remote 可查到 v1.0.1),但 actions/runs API 返回 total_count: 0, 仓库从未跑过任何 Actions。 改用 release 事件 —— 创建 Release 是真实用户动作,其 GITHUB_REF 为 refs/tags/<tag_name>,正好提供版本校验所需的 tag 名。 types 同时监听 created 与 published:按官方 webhook 文档,手动创建 Release (此前非 draft)触发的是 created 而非 published,只写 published 会导致 手动发版时工作流不运行。 因监听两条路径,新增 check-version-published.js 做幂等保护:先存 draft 再 发布会触发两次,而 npm 版本号无法覆盖,第二次必然失败。脚本发布前查一次 npm,已发布则优雅跳过。退出码约定 0=跳过 / 1=继续 / 2=中止(环境异常时 保守中止,避免误判为未发布导致重复发版)。 Windows 兼容:npm 是 .cmd 批处理,spawnSync 需 shell:true 且用 npm.cmd, 否则 ENOENT/EINVAL;已由 4 个用例(含真实 npm 查询)覆盖。 验证:53/53 测试通过,tsc clean,PyYAML 校验 workflow 结构, bash 分支逻辑实测 三条路径(跳过/继续/中止)均正确。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 month ago | |
fix(ci): Release 只触发一次,并让版本冲突给出可执行提示 一次手动发版跑了两遍(actions/runs 出现两条同秒记录,均失败于 第 4 步版本校验)。 原因:GitHub 对「创建一个此前非 draft 的 Release」会推送两条事件 —— created 与 published(官方文档:Action type: created — A draft was saved, or a release or pre-release was published without previously being saved as a draft)。同时监听 [created, published] 使两条都命中。 改为只监听 created:它已覆盖手动发布这一主路径;published 仅在 「先存 draft 再发布」时出现,而那种场景下 created 已经先触发过。 同时改进 verify-tag-version 的失败输出:原先只说「已中止发布」, 现直接给出两条可执行的修复路径(改 tag 名 / 改版本号后重打 tag), 并提醒 npm 版本号无法回收。本次 v1.0.1 的失败正是因为 tag 与 package.json 版本不一致,提示不明确导致难以判断该改哪一边。 验证:53/53 测试通过,tsc clean,PyYAML 确认触发器为 [created]。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 month ago |
| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 1 month ago |