いつの間にかGitHub Actionsで(待望の!!!)スケジュールトリガーが設定できるようになったみたいです
GitHub Actions Changelog | GitHub Developer Guide
Creating and cancelling a workflow | GitHub Developer Guide
やってみます
schedule
という項目が選択できるようになっています
選んで設定するだけです
とりあえず適当なシェル実行するだけのアクションをつなげて待ってみます
- .github/main.workflow
workflow "batch workflow" { on = "schedule(15,20 * * * *)" resolves = ["new-action"] } action "new-action" { uses = "actions/bin/sh@master" args = ["cat /github/workflow/event.json"] }
しばらく待つと実行されました
- 実行ログ
..... ..... ..... ..... Already have image (with digest): gcr.io/github-actions-images/action-runner:latest Running 'cat /github/workflow/event.json'... {"schedule":"15,20 * * * *"}Successfully ran 'cat /github/workflow/event.json' ### SUCCEEDED new-action 13:21:13Z (31.381s)
event.json
の中身は{"schedule":"15,20 * * * *"}
だけでした
対象ブランチについて
以前GitHub Actionsを試したときはブランチのフィルターは設定ではなく公式のアクションactions/bin/filter
を作成して行う感じだったのでschedule workflowではどうなるのかなーと思いブランチを作ってpushしてみました
結果発火したのはmaster
のみだったのでschedule workflowのアクションについてはmaster
のソースでしか実行できない感じになるのかなと思われます
CircleCIではYAMLに書けばmaster以外のブランチのソースでもスケジュールトリガーを設定できるので使うかどうかは別として柔軟にコントロールできます
そもそも定期的に実行したいタスクで複数のブランチまたいで実行したいケースはあまりないと思うのでそんなに不便ではないと思いますが留意しておく必要はあるかなと思いました
おわり
スケジューリングができるようになったので幅が広がりますね
簡単なバッチだったりに重宝するかと思います
IssueやPullRequestを定期チェックして自動でなにかするみたいな処理を入れたい気持ちになっています
個人的には待ち望んでいた機能なので嬉しいです
早くOrganizationのリポジトリにも降りてきてほしい!!