2024-09-30 GitHub Actionsでcron schedule設定者が退職するとワークフローが停止する
この仕様は知らなかったのでメモ。
gh-actionワークフローのcron設定者が退職するとワークフローが停止するの知らなんだ「When the last user to commit to the cron schedule of a workflow is removed from the organization, the scheduled workflow will be disabled.」 » Events that trigger workflows https://t.co/jaKNdb17FA
— toshimaru (@toshimaru_e) September 30, 2024
最後にワークフローの Cron スケジュールにコミットしたユーザーが組織から削除されると、スケジュールされたワークフローは無効になります。
ワークフローをトリガーするイベント - GitHub Docs
解決策
リポジトリへの write アクセス許可を持つユーザーが Cron スケジュールを変更するコミットする場合、スケジュールされたワークフローが再アクティブ化されます。 この状況では、ワークフロー ファイルの変更によってワークフローが再アクティブ化されることはないことに注意してください。cron 値を変更し、この変更をコミットする必要があります。
書いてあるとおり、cronの値そのものを変えなければいけない点に注意(スケジュールを変えたくない場合に不便だ…)。
on:
schedule:
- cron: "15 4,5 * * *" # <=== Change this value
GitHub Enterprise における挙動
GitHub Enterprise を利用している場合下記の挙動になるようだ。
最後の actor Enterprise Managed User が IdP によってプロビジョニング解除されておらず、Enterprise 内の特定の organization からメンバーとして削除されただけである場合、スケジュールされたワークフローは、そのユーザーが actor と設定された状態で引き続き実行されます。 同様に、Enterprise Managed Users を使っていない Enterprise の場合、organization からユーザーを削除しても、そのユーザーを actor として持つスケジュールされたワークフローの実行は妨げられません。