是否可以从语义发行说明中排除一些提交?
Posted
技术标签:
【中文标题】是否可以从语义发行说明中排除一些提交?【英文标题】:Is it possible to exclude some commits from semantic release release notes? 【发布时间】:2021-11-19 09:19:56 【问题描述】:我有一个案例,我需要在semantic-release/commit-analyzer
中包含提交,但在semantic-release/release-notes-generator
中不需要。是否可以在 Github 动作语义发布中做到这一点?
【问题讨论】:
提交是什么?这是一次性的,还是会不断重复? 它将每 2 周自动提交一次,但需要进行提交分析。 【参考方案1】:Semantic-release 将仅(默认情况下)包含在发行说明中触发发布的提交。所以提交例如以ci:
或refactor:
开头,不要通过。* 我认为这是你的用例——触发某些操作但本身并不构成发布的自动提交。
更新,您似乎确实想触发版本升级而不记录您所做的事情。我认为这是一个坏主意(在下面展开),但可以使用这样的 hack:
静默提交
语义发布的全部意义在于记录每个值得版本碰撞的更改。但是,如果您真的想产生一个隐藏的凹凸,您可以使用以下方式的 hack:
-
将最新标签保存到 var 或文件中
运行语义发布没有
@semantic-release/github
动作,但有@semantic-release/changelog
动作,将变更日志写入git版本不会拾取它的地方,即在克隆目录之外。
运行自定义脚本:
-
如果有一些输出,请自己创建 github 版本,使用各种操作之一,并将 message 设置为脚本的输出。
不这样做的原因
我只是互联网上的一个随机人,但我不认为这是一个好主意。推理:
关于语义发布的全部意义在于让发布变得“无聊且不浪漫”:更具体地说,每个值得发布的提交都会触发一个记录的发布。现在,要么您的自动 fix: stuff
提交 确实 确实修复了一些东西(在这种情况下,这是值得注意的并且应该包括在内),或者它没有,在这种情况下,您有其他一些问题(也许您出于“浪漫和有趣”的原因尝试发布?也许您需要每 n 天发布一次,即使实际上没有任何变化?)。在任何一种情况下,隐藏合法修复都不是解决问题的方法。
如果您的问题是一种“微修复”,它应该生成一个发布,但发生频率太高以至于阻塞了发布说明,那么您可能想要一个预发布分支(其中有很多微修复在合并提交中汇总为一个重大修复)。
*假设您使用的是conventional commits
【讨论】:
感谢您的回复。我有一些名为“修复:更新了一些定义”的提交,这个提交我想参与版本凹凸的提交分析,但不想包含在发行说明中。 我仍然不知道为什么你想这样做,但我已经更新了答案,以便更清楚地说明如何在 github 操作中破解它。但根据我的 cmets,我认为这可能是一个 x/y 问题(不过我肯定是错的)。以上是关于是否可以从语义发行说明中排除一些提交?的主要内容,如果未能解决你的问题,请参考以下文章