GitHub Actions スケジュールトリガー設定ガイド

定時自動実行ワークフローの作成方法

1. 基本構成

リポジトリに以下のファイルを作成します:

.github/workflows/scheduled-task.yml
name: 定時タスク on: schedule: # cron形式: 分 時 日 月 曜日 (UTC時間) - cron: '0 0 * * *' # 毎日 UTC 0:00 = 日本時間 9:00 jobs: run-task: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Node.js セットアップ uses: actions/setup-node@v4 with: node-version: '20' - name: 依存関係インストール run: npm ci - name: ビルドチェック run: npm run build

2. cron 記法リファレンス

cron形式について

5つのフィールドで時刻を指定します:分 時 日 月 曜日

例: 30 9 * * 1-5 = 毎週月〜金の9:30

cron設定 UTC時間 日本時間
0 0 * * * 毎日 0:00 毎日 9:00
0 1 * * 1-5 平日 1:00 平日 10:00
30 23 * * * 毎日 23:30 翌日 8:30
0 */6 * * * 6時間ごと 6時間ごと
0 0 1 * * 毎月1日 0:00 毎月1日 9:00
0 15 * * 0 毎週日曜 15:00 毎週月曜 0:00
注意: タイムゾーン

GitHub Actions は UTC(協定世界時) で動作します。

日本時間(JST)= UTC + 9時間 で計算してください。

3. 実用例:ビルド失敗時にSlack通知

.github/workflows/daily-build-check.yml
name: 毎朝ビルドチェック on: schedule: - cron: '0 0 * * 1-5' # 平日 9:00 JST jobs: build-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm run build - name: 失敗時Slack通知 if: failure() uses: slackapi/slack-github-action@v1 with: payload: | {"text": "⚠️ ビルド失敗: ${{ github.repository }}"} env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

4. 手動実行も可能にする

workflow_dispatch を追加すると、GitHub上のボタンから手動実行できます:

on: schedule: - cron: '0 0 * * *' workflow_dispatch: # 手動実行ボタンを追加

5. セットアップ手順

1
ディレクトリ作成

リポジトリのルートに .github/workflows/ ディレクトリを作成

2
YAMLファイル作成

ワークフローファイル(例: scheduled-task.yml)を作成

3
コミット&プッシュ

main/masterブランチにプッシュすると自動的に有効化

4
確認

GitHub → Actions タブでワークフローが表示されることを確認

6. 注意事項

7. よく使うcronパターン

用途 cron設定 日本時間
毎朝の定時チェック 0 0 * * * 9:00
平日の業務開始前 30 23 * * 0-4 月〜金 8:30
毎週月曜の週次レポート 0 0 * * 1 月曜 9:00
月末の月次処理 0 15 L * * 月末 0:00
深夜のバックアップ 0 18 * * * 3:00