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を設定すると、手動でアクションを開始できます。

    デバッグ時点では付けておいて、安定稼働し始めたら削除するとよいでしょう。

    参考

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark