本文へスキップ
cron.surf

GitHub Actions ワークフローを毎分実行する

GitHub Actions には「毎分」を正確に表す式がありません。理由と代替案、対応しているプラットフォームを示します。 GitHub Actions は on.schedule で POSIX cron を使い、デフォルトブランチで実行します。タイムゾーンを指定しなければ UTC です。

GitHub Actions で正確に表せない理由

crontab での定義 * * * * * · “毎分”

  • GitHub Actions のスケジュールは最短 5 分ごとです。この式はそれより頻繁です。

    代替案workflow_dispatch や repository_dispatch で外部からワークフローを起動するか、スケジュールを別の場所で動かします。

GitHub Actions の注意点

最短は 5 分GitHub のドキュメントでは、スケジュール実行の最短間隔は 5 分ごとです。それより短い間隔は期待できません。
遅れたり落ちたりする混雑時、特に毎時 0 分は実行が遅れ、一部は破棄されることがあります。時刻が重要なら 0 分を避けてください。
timezone を指定しなければ UTCschedule のエントリに timezone: と IANA 名を追加します。ないと UTC で実行されます。
デフォルトブランチのみ、停止されることもスケジュールはデフォルトブランチの最新コミットで動きます。公開リポジトリでは 60 日間活動がないと無効になります。

よくある質問

GitHub Actions で「毎分」を表す cron 式は?

正確に一致する式はありません。GitHub Actions のスケジュールは最短 5 分ごとです。この式はそれより頻繁です。

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 つのフィールドで書きます。