⏰
Github Actions を定刻に実行する方法
schedule
トリガーを用いた方法 👎
Github Actions を定刻に実行する方法としては、schedule
トリガーを利用する方法が一般的かと思います。
.github/workflows/scheduled.yaml
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "30 5,17 * * *"
定刻に実行できるような Workflow も探してみましたが、GithubActions を実行したまま待機するなど、力技のものしか見つかりませんでしたので、外部サービスと連携して実現することにしました。
repository_dispatch
トリガーを用いた方法 👍
こちらは Github の Webhook を外部から呼び出した際に発生するイベントです。
.github/workflows/webhooks.yaml
on:
repository_dispatch:
types: [on-demand-test]
cron-job
無料で利用でき、任意のタイミングで http リクエストを送信できるサービスです。
こちらのサービスから Github の Webhook へ http リクエストを送信します。
サクッと登録して、Cronjob を作っていきます。
- Title:
<任意>
- URL:
https://api.github.com/repos/<repository-owner>/<repository-name>/dispatches
- Execution schedule:
<任意>
- Headers
- Accept :
application/vnd.github+json
- Authorization :
Bearer <personal-access-token>
- X-GitHub-Api-Version :
2022-11-28
- Accept :
- Advanced
- Time zone :
Asia/Tokyo
- Request method :
POST
- Request body:
{"event_type":"on-demand-test"}
- Time zone :
スケジュールには、毎日/月/年だけでなく、曜日指定もできるので、日/月次処理だけでなく、週次処理も実行できそうです 💡
Discussion