GitHub Actionsのスケジューラ実行を利用して定期的にビルドする
GitHub Actionsのスケジューラ実行で、Hugoなどのサイトを定期ビルドし、データを最新化する方法を調べたときのメモです。
GitHub Actionsでスケジューラ実行
onにはGitHub Actionsのトリガーを記載します。
通常はgit pushしたときにActionが実行されるようにpushのみを指定しますが、スケジューラ実行する際は、scheduleを追加します。
実行タイミングはcronで指定します。
私は、crontabの書式をいつも忘れるのですが、以下のサイトを利用するとグラフィカルに表示されわかりやすいです。
Crontab.guru - The cron schedule expression editor
on:
push:
branches:
- main
schedule:
- cron: '30 10 * * *'
・・・定期ビルド
2021年1月9日現在、このブログは静的サイトジェネレーターHugoを利用しています。
GitHub ActionsのSchedulerで、1日1回定期的にサイトをビルドできるようになりました。
gh-pages.yml
name: github pages
on:
push:
branches:
- main
schedule:
- cron: '30 10 * * *'
jobs:
deploy:
runs-on: ubuntu-18.04
steps:
- name: Clone module
uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.77.0'
- name: Build
run: HUGO_ENV="production" NODE_ENV="production" hugo --gc
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public