Repository navigation
ci: 发版流程加演练模式,试标签格式不用真发一版 - #7
Merged
Merged
Conversation
手动触发 release.yml 时多一个 dry_run 开关:照样跑双档测试和全部校验 (版本号对不对得上、registry 上有没有、正文怎么拼),把 Release 标题与 正文打在日志里,但不发 npm、不建 Release。 演练时标签可以还不存在——就是拿来看格式的,git describe 找不到就退回 用当前检出点当终点。 顺带把 concurrency 的分组从 ref 改成目标标签:演练 v0.10.0 和真推 v0.10.0 落在同一组里,免得演练没跑完真发版就跟它抢版本号。 测试补 8 条断言,四条变异自证(M9 去掉发 npm 的闸 / M10 去掉建 Release 的闸 / M12 DRY_RUN 不进 env / M13 演练步骤加假条件)都能红。
演练模式实跑时发现:release job 打「共 N 条提交」,6 条提交只数出 5 条。 原因是 git log --pretty=format: 不在最后一条后补换行,wc -l 数的其实是 换行符个数,末尾那条永远漏掉。 改用 git rev-list --count,按提交对象数,不受输出格式影响。 这个数只打在日志里、不影响 Release 正文(正文按行生成),但数错了看起来 就像漏了提交,排查时容易被带偏。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
手动触发
release.yml时多一个dry_run开关:照样跑双档测试和全部校验(版本号对不对得上、registry 上有没有、正文怎么拼),把 Release 标题与正文打在日志里,不发 npm、不建 Release。为什么加这个
之前试标签格式只有一个办法:真发一版。但 npm 上的版本号发出去就收不回来——0.9.0 那次回查误判已经演示过一遍,版本号浪费了就浪费了。有了演练模式,
v0.10.0的正文长什么样、安装段对不对、compare 链接拼得对不对,都能先看一眼。演练时标签可以还不存在:反正不发布,就是拿来看格式的,
git describe找不到就退回用当前检出点当终点。顺手改的一处
concurrency的分组从github.ref改成目标标签:演练 v0.10.0 和真推 v0.10.0 落在同一组里,免得演练还没跑完,真发版就跟它抢同一个版本号。验证
DRY_RUN进 env、发 npm/回查/建 Release 三处都有闸、演练会打正文、标签不存在时退回 HEAD、演练检出分支而非标签)DRY_RUN不进 env / M13 给演练步骤加个假条件&& false照样匹配。补成要求 if 行后必须直接换行(后面接run:)才红。node tests/all.mjs→ 8 套全绿 24516msbase=HEAD prev=v0.9.0 commits=5;已存在的标签 →base=v0.9.1。两种都对。没做的
push触发的路径加任何新行为:那条路DRY_RUN恒为false,与合并前完全一致