LoginSignup
0
0

Github Actionsでワークフローを自動化するには

Posted at

Gihub Actionsで指定した時刻で定期的にワークフローを実行し、実質的な自動化を目指しました。公式ドキュメントにも示されていますが、今回自分が実装した方法をまとめました。

結論:Scheduleトリガーを使用する

結論から言うとScheduleトリガーを使用することで実現することができます。

on:
  schedule:
    - cron:  '30 20 * * *'

例えばこのコードでは、毎日20:30 UTCにワークフローが実行されます。しかし、この時刻はUTCなのでJSTとしての時間での実行を想定するのであれば9時間の時差があることに注意してください。

ちなみにここで使用するcronは実行時間を表し、「分、時、日、月、曜日」を表し、曜日の部分は0~7でsun~satを表します。また、*を使用することで、「全て」を表すこともできます。

時間指定の例

毎日10:30 UTCに実行する

30 10 * * *

毎月5日の1:00 UTCに実行する

0 1 5 * *

実際にやってみる

今回やってみたのは、定刻にbuildを実行すると言うもの。毎月5日の10:00 JSTにワークフローが実行されるように実装しました。

name: artist-sales-report

on:
  schedule:
    # 毎月5日の10:00 JST (01:00 UTC)に実行
    - cron: "0 1 5 * *"

jobs:
  build:
    name: run build
    runs-on: ubuntu-latest
    steps:
      - run: npm run build

わかったこと

実際に定期実行を実現することはできました。ただ、遅延が発生します。
原因としては、Actionsのワークフロー実行の負荷が高い時にイベントに遅延が発生するそうです。そのため、リアルタイム性を追及するようなフローへの使用は適さないと感じました。

参照

https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0