由于 Github Releases实际上是一个 Git Tags,我想在有新的Release(和Tag)时使用 Github Action 自动升级我的package.json
版本。
我知道我需要触发一个job
on: release
,但是根据Github Actions文档,我不知道我是否需要在created
,published
,两者或全部时触发?
Github说:
注意:draft
版本不会触发release
事件。
我创建了两个管道:一个on: release, type: created
和一个on: release, type: published
。
然后我创建了一个draft
版本,然后我发布了它。
只有published
管道被触发了,而且是在我发布**版本的时候。
4条答案
按热度按时间q3qa4bjr1#
我的经历与here on the forum所描述的相反。测试时:
/releases
页面上的“Draft a new release”按钮创建的,则两个事件都将触发,因为发布状态从“draft”变为“published”。release-it
这样的脚本创建的,绕过“draft”阶段并直接成为“published”,则只有release:published
会触发因此,很明显,一个版本可以在没有创建的情况下发布。确实很奇怪我会选择
published
。3pvhb19x2#
如果你试图捕获从Github Action触发的发布到另一个工作流的创建和发布,那么它将无法工作。
解决方案是将两个工作流统一为一个工作流,以便在创建发布后继续下一个工作流。
来源:https://twitter.com/ethomson/status/1183838077166477316
范例:
50few1ms3#
可以创建发布,但不能发布。这是一个关于“释放”的问题。
我建议使用
published
类型的版本。sshcrbum4#
我在这里查看了它们之间的差异:
https://docs.github.com/en/webhooks/webhook-events-and-payloads#release
这里有一个注解:https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release。
虽然文档没有明确说明,但我猜
created
应该只在GitHub浏览器UI上创建预发布/发布时生效。这也符合得票最多的答案的结论。
created
必须经过草稿阶段才能触发。