GitHub Actions の release のイベントについて調べます。
release のイベントは対象の Repository の Release の作成・変更・削除などによってトリガーされます。
以下を参考に、Release の状態変化とそれにトリガーされるイベントをまとめる。
stateDiagram-v2
Draft: draft<br>release or pre-release
PreRelease: pre-release
Release: release
[*] --> Draft: none
[*] --> PreRelease: prereleased<br>created<br>published
[*] --> Release: released<br>created<br>published
Draft --> PreRelease: published
Draft --> Release: published
PreRelease --> Release: released<br>(uncheck "Set as a pre-release")
Release --> PreRelease: prereleased<br>(check "Set as a pre-release")
PreRelease --> [*]: deleted
Release --> [*]: deleted
state PreRelease {
[*] --> [*]: edited<br>(edit description or title)
[*] --> [*]: none<br>(change tag)
}
state Release {
[*] --> [*]: edited<br>(edit description or title)
[*] --> [*]: none<br>(change tag)
[*] --> [*]: edited<br>(check "Set as the latest release")
}
Warning
draft から release に変更する際には released はトリガーされない。 pre-release も同様。
Note
2つ以上の Release がある状態で、現在 Latest Release ではない方の Release の Set as the latest release にチェックして更新すると、 release.edit のワークフローがトリガーされる。
その際の ${{ github.event.action }} は、これから Latest となる方のブランチ(タグ)になる。
もともと Latest で、これからそうでなくなる方からはワークフローはトリガーされない。