本文へスキップ
cron.surf

GitHub Actions ワークフローを1 時間ごとに実行する

GitHub Actions で「1 時間ごと」を表す式は 0 * * * * です。以下に、そのまま使える設定、次回の実行時刻、注意点をまとめます。 GitHub Actions は on.schedule で POSIX cron を使い、デフォルトブランチで実行します。タイムゾーンを指定しなければ UTC です。

0 * * * *ツールで開く

“毎時”

ワークフローファイル

.github/workflows/every-hour.yml
name: every-hour
on:
  schedule:
    - cron: '0 * * * *'
      timezone: 'UTC'
  workflow_dispatch:
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - run: echo "running every-hour"

GitHub Actions の注意点

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

よくある質問

GitHub Actions で「1 時間ごと」を表す cron 式は?

0 * * * * です。意味:毎時

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