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

iPhoneで撮った写真(HEIC)をGitHubにアップロードする

GitHubアプリ上からアップロードするのが楽

MonorepoでGitHub Actionsを使う

pathsを設定することでサブディレクトリへの変更のみを検知できるようになった

Personal Access Tokenの見直し

整理した

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

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

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

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

GitHub app is built on Slack's workspace apps which are now deprecated

旧GitHub appは新appのインストール後に消すべきだった