GitHub Actionsのワークフローを定期実行する

公開日時

↓の対応を行うとGitHubリポジトリへのpushをトリガーに、Firebase HostingへデプロイするGitHub Actionsを手軽に設定できる。

今回はpushトリガーに加えて、毎日指定時刻にデプロイを行うようにしたかったので schedule トリガーを設定した。

cron式はUTCでの記述になるので↓で設定すると日本時間の9時30分にトリガーされる。

name: Deploy to Firebase Hosting
'on':
  push:
    branches:
      - main
  schedule:
    - cron: '30 0 * * *'
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
  # ...

ただ、翌日にActionsのログを確認してみると09:46に実行されていた。

ドキュメントを見ると「負荷で遅延することがある」とのこと。

Note: The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. To decrease the chance of delay, schedule your workflow to run at a different time of the hour. Events that trigger workflows - GitHub Docs

今回の場合は遅延が起きても問題にはならないのものだったので、そのままGitHub Actionsで定期実行することにした。

既存のGitHub Actionsに2行コードを追加するだけで定期実行ができるようになるのはとても手軽で良い。

参考


Related #github

Github ActionでfirebaseプロジェクトをS3にデプロイする

deploymentブランチにpushしたら自動でs3にデプロイできるようになった

Github ActionでCloudfrontのキャッシュをクリアする

デプロイ後にキャッシュクリアを行うように設定

Github Actionで自動コミット設定をする

pushするとAPI仕様書の自動更新ができるようになる

Github Actionで特定のブランチの場合のみ実行する処理を書く

if: contains(github.ref, 'master')でmasterのみ自動コミットをするようにした