GitHub Actions の cron スケジュール
GitHub Actions は on.schedule で POSIX cron を使い、デフォルトブランチで実行します。タイムゾーンを指定しなければ UTC です。 スケジュールを選ぶと、正確な式、そのまま使える設定、次回の実行時刻がわかります。
スケジュール
- 5 分ごと
*/5 * * * * - 1 時間ごと
0 * * * * - 毎分変換不可
- 10 分ごと
*/10 * * * * - 15 分ごと
*/15 * * * * - 30 分ごと
*/30 * * * * - 毎日 0 時
0 0 * * * - 毎日 9 時
0 9 * * * - 平日 9 時
0 9 * * 1-5 - 毎週月曜日
0 0 * * 1 - 毎月 1 日
0 0 1 * * - 6 時間ごと
0 */6 * * * - 毎週日曜日 0 時
0 0 * * 0 - 2 時間ごと
0 */2 * * * - 12 時間ごと
0 */12 * * * - 毎日 12 時
0 12 * * * - 毎週金曜日
0 0 * * 5 - 毎月末日変換不可
- 四半期ごと
0 0 1 */3 * - 2 分ごと変換不可
- 3 時間ごと
0 */3 * * * - 毎日 6 時
0 6 * * * - 毎日 18 時
0 18 * * * - 1 日 2 回
0 */12 * * * - 平日 18 時
0 18 * * 1-5 - 週末 10 時
0 10 * * 0,6 - 毎月 15 日
0 0 15 * * - 毎月第 1 月曜日変換不可
- 毎月最終金曜日変換不可
- 年 1 回
0 0 1 1 * - 30 秒ごと変換不可
- 3 分ごと変換不可
- 20 分ごと
*/20 * * * * - 4 時間ごと
0 */4 * * * - 8 時間ごと
0 */8 * * * - 毎日 1 時
0 1 * * * - 毎日 2 時
0 2 * * * - 毎日 3 時
0 3 * * * - 毎日 8 時
0 8 * * * - 毎平日
0 0 * * 1-5 - 毎週末
0 0 * * 0,6 - 毎週火曜日
0 0 * * 2 - 毎週水曜日
0 0 * * 3 - 毎週木曜日
0 0 * * 4 - 毎週土曜日
0 0 * * 6 - 6 か月ごと
0 0 1 */6 * - 10 秒ごと変換不可
- 5 秒ごと変換不可
GitHub Actions の注意点
最短は 5 分GitHub のドキュメントでは、スケジュール実行の最短間隔は 5 分ごとです。それより短い間隔は期待できません。
遅れたり落ちたりする混雑時、特に毎時 0 分は実行が遅れ、一部は破棄されることがあります。時刻が重要なら 0 分を避けてください。
timezone を指定しなければ UTCschedule のエントリに timezone: と IANA 名を追加します。ないと UTC で実行されます。
デフォルトブランチのみ、停止されることもスケジュールはデフォルトブランチの最新コミットで動きます。公開リポジトリでは 60 日間活動がないと無効になります。
GitHub Actions との相互変換
GitHub Actions の cron を crontab に変換crontab の cron を GitHub Actions に変換GitHub Actions の cron を Kubernetes に変換Kubernetes の cron を GitHub Actions に変換GitHub Actions の cron を AWS EventBridge に変換AWS EventBridge の cron を GitHub Actions に変換GitHub Actions の cron を Spring に変換Spring の cron を GitHub Actions に変換GitHub Actions の cron を Quartz に変換Quartz の cron を GitHub Actions に変換
よくある質問
GitHub Actions のスケジュールはどのタイムゾーンで動きますか?
デフォルトは UTC です。schedule の cron: の横に timezone: と IANA 名(例:Asia/Tokyo)を書きます。
GitHub Actions は毎分実行できますか?
できません。ドキュメント上の最短は 5 分ごとです。もっと短くしたい場合は workflow_dispatch や repository_dispatch で外部から起動します。
GitHub Actions は @hourly や @daily に対応していますか?
対応していません。@yearly、@monthly、@weekly、@daily、@hourly、@reboot は使えないので、5 つのフィールドで書きます。