gotohayato.com

月(ダークモード)
太陽(ライトモード)

GitHub Actions ワークフローで処理を定期実行する方法

GitHub

GitHub の自動化ツール GitHub Actions のワークフローを使って特定の処理を定期的に実行する方法についてです。 GitHub 公式のドキュメントに方法が書かれているのですが、情報があちこちに散っている感じなのでかんたんにまとめておきます。

schedule トリガーイベントを使う

早速結論ですが schedule というトリガーイベントを利用すれば OK です。

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

cron の値には実行時間を表す POSIX cron シンタックス ↓ の文字列を渡します。

分 時 日 月 曜日

時間指定のサンプル

cron を設定する機会が少ないので都度調べる(私のような)人のために、時間指定のサンプルをいくつかあげます(動作確認していないので間違っている可能性があります)。

毎日毎時 30 分 (UTC) に実行する:

30 * * * *

毎日 10:45 (UTC) に実行する:

45 10 * * *

3 日毎に 1 回 08:00 (UTC) に実行する:

0 8 */3 * *

毎週月曜日の 15:00 (UTC) に実行する:

0 15 * * 1

曜日指定には [0, 6] の整数を使います。 0 が日曜日、 6 が土曜日です。

完成形のサンプル

この schedule を使って定期的に特定の URL にリクエストをかけるには次のようにすれば OK です。

.github/workflows/scheduled-build.yml:

name: Scheduled build
on:
schedule:
# 月曜日の 11:00 (JST) に処理を実行する。
# UTC の 02:00 は JST だと 11:00 。
- cron: '0 2 * * 1'
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- name: curl
run: curl --show-error -X POST -d {} "${{ secrets.BUILD_HOOK_URL }}"

# で始まる行はコメントです。 name の値は処理には影響しないので、自分(たち)がわかりやすい値をセットして使うとよいと思います。 記事執筆時点では runs-onubuntu-latest を選べば前準備なしで curl が使えました。 secrets.BUILD_HOOOK_URL の値は該当するリポジトリのページから Settings → Secrets と行ってセットすれば OK です。

参考

以下すべて公式ドキュメントです。


後藤隼人
ウェブサイト制作・ウェブアプリ開発やマーケティングをしています。
GitHub

お知らせ

大阪大学医学部附属病院さんで現在クラウドファンディングのプロジェクトをされています(後藤も少しだけ寄附させていただきました)。
© 2020 gotohayato.com
サイトについてタグアーカイブメッセージを送る