GitHub Actionsを使って、Netlifyのビルドをスケジュール実行する
Next.jsのSSGモードやGatsbyを使っている場合、一定頻度でサイトのビルドを行いたいケースが出てきます。 Netlify本体には、2022/06時点でスケジュールビルドの機能はありません。 が、Build Ho […]
広告ここから
広告ここまで
目次
Next.jsのSSGモードやGatsbyを使っている場合、一定頻度でサイトのビルドを行いたいケースが出てきます。
Netlify本体には、2022/06時点でスケジュールビルドの機能はありません。
が、Build HookとGitHub Actionsを使うことで実現できます。
NetlifyのBuild Hookを設定する
まずは、API呼び出しでビルドを実行できるBuild Hook
を設定します。
サイトの設定ページの[Build & Deploy]から開きましょう。
Save
すると、https://api.netlify.com/build_hooks/xxxx
のようなURLが発行されます。
Build Hook URLをGitHubのシークレットに設定する
GitHub Actionsで利用するsecretに発行したURLを設定しましょう。
YAMLベタ打ちにすると、誰でもビルド実行できる状態になるため、財布に優しくありません。
ここでは、NETLIFY_BUILD_HOOK_URL
として登録します。
GitHub Actionsワークフローを設定する
あとはGitHub Actionsで実行するワークフローを設定しましょう。
.github/workflows/main.yml
name: Trigger Netlify Build
on:
workflow_dispatch:
schedule:
# Run at 0815 daily
- cron: '15 8 * * *'
jobs:
build:
name: Request Netlify Webhook
runs-on: ubuntu-latest
steps:
- name: Curl request
run: curl -X POST -d {} ${{ secrets.NETLIFY_BUILD_HOOK_URL }}
workflow_dispatch
を設定すると、手動でアクションを開始できます。
デバッグ時点では付けておいて、安定稼働し始めたら削除するとよいでしょう。