基本的な設定

on:
  schedule:
    - cron: '0 9 * * *'    # 毎日9時(UTC)

よく使うcron設定例

0 9 * * *       # 毎日9時(UTC)
0 0 * * 1       # 毎週月曜日0時
0 9 1 * *       # 毎月1日9時
*/30 * * * *    # 30分ごと

JSTに変換する

GitHubのcronはUTCなので9時間の差がある。

JSTの9時 = UTCの0時 → cron: '0 0 * * *'

手動実行も可能にする

on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

ハマったポイント

  • cronはUTCなのでJSTと9時間ずれる
  • リポジトリにアクティビティがないと無効化されることがある

Linuxのcronジョブとの使い分けについてはLinuxでCronジョブを設定して定期実行する方法も参考にしてほしい。GitHub Actionsのスケジュールはリポジトリへのアクセスが必要な処理に、サーバー側の処理はcronで使い分けるのが一般的だ。

関連記事

おすすめのVPS

VPSを使って本番環境を構築するなら、以下のサービスがおすすめです。

より詳しく学びたい方へ

この記事の内容をさらに深掘りした実践ガイドをZennで公開しています。

VPS・GitHub Actions・Cloudflare 実践構築ガイド