本文へスキップ
CronExplain

GitHub Actions Cron スケジュールの解説

GitHub Actions は on.schedule トリガーで、標準の 5 フィールド Cron を使ってワークフローを定期実行します。Cron 文字列を貼り付けて、その意味と UTC での実行時刻を確認しましょう。

意味

GitHub Actions: 標準の 5 フィールド、常に UTC、最短 5 分間隔。混雑時は実行が遅れることがあります。

✓ 有効 · 意味

次において実施05:30、月曜日 から 金曜日 まで

プリセット

次の 10 回の実行

#UTC の時刻あなたの現地時刻
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

他の方言での同じスケジュール

  • 標準 crontab30 5 * * 1-5
  • Quartz0 30 5 ? * MON-FRI
  • AWS EventBridgecron(30 5 ? * MON-FRI *)EventBridge ルールは UTC を使用します。
  • Spring0 30 5 * * MON-FRI

ビジュアルビルダー

フィールドごとに値を選択します。ビルダーは標準の 5 フィールド式を作成し、使用時に選択中の方言へ変換します。

分
時
日
月
曜日
0 9 * * 1-5

ワークフローで Cron を使う

ワークフローファイルにスケジュールトリガーを追加します: on: schedule: - cron: '30 5 * * 1-5'。式は通常の 5 フィールド(分・時・日・月・曜日)を使い、* は YAML の特殊文字なので必ず引用符で囲みます。複数の cron を並べることもでき、どれが起動したかは github.event.schedule で分かります。

UTC と 5 分の制限

スケジュールは常に UTC で評価されるため、0 9 * * * は現地時刻ではなく UTC の 09:00 に実行されます。ツールの現地時刻列で換算しましょう。GitHub がサポートする最短間隔は 5 分です。@daily などのマクロは使えないので、各フィールドを記述してください。

遅延と非アクティブなリポジトリ

負荷が高い時間帯、特に毎時 0 分には、スケジュール実行の開始が遅れることがあります。時刻が厳密でなくてよければ、0 分ではなく 17 分のような半端な分を選びましょう。公開リポジトリでは、60 日間アクティビティがないとスケジュールされたワークフローが自動的に無効化されます。

スケジュールワークフローのテスト

schedule と並べて workflow_dispatch を追加すると、テスト中に手動でワークフローを起動できます。スケジュールはデフォルトブランチからのみ実行されるため、機能ブランチで cron を変更してもマージするまで反映されません。concurrency グループを使えば、遅い実行が次のスケジュール実行と重なるのを防げます。

よくある質問

GitHub Actions の Cron はどのタイムゾーンですか?
常に UTC で、変更はできません。式を書くときは現地時刻を UTC に換算してください。
ワークフローを毎分実行できますか?
できません。最短間隔は 5 分で、それより頻繁なスケジュールでも最大で 5 分ごとにしか実行されません。
スケジュールしたワークフローが時間どおりに動かないのはなぜ?
スケジュールジョブはキューに入るため高負荷時に遅れることがあり、デフォルトブランチでのみ実行されます。非アクティブな公開リポジトリのワークフローも停止されます。
GitHub Actions で @daily は使えますか?
使えません。0 0 * * * のような等価な 5 フィールドを使ってください。