Schedule Netlify builds with GitHub Actions
If you didn’t already know it, GitHub Actions is a way to automate things in your GitHub repository. With it you can create workflows that can do things with your repository and react to different kinds of events. The easiest way to setup a scheduled build hook trigger that I have come across is to use GitHub Actions.
The schedule
event allows you to trigger a workflow at a scheduled time. You can schedule a workflow to run at specific UTC times using POSIX cron syntax. Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 5 minutes.
This example triggers the workflow every 15 minutes:
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '*/15 * * * *'
What are Netlify Build hooks?
Build hooks are URLs you can use to trigger new builds and deploys. You can find them in Netlify dashboard: Site settings > Build & deploy > Continuous deployment > Build hooks. By creating a build hook and sending a POST
request to it, you trigger a new build & deploy for your site.
Workflow file
In your GitHub repo, create a main.yml
file in a .github/workflows
directory:
name: Shedule Netlify Build
on:
schedule:
- cron: '0 6 * * *'
jobs:
build:
name: Request Netlify Webhook
runs-on: ubuntu-latest
steps:
- name: Curl request
run: curl -X POST -d {} HERE-GOES-YOUR-BUILD-HOOK
Replace HERE-GOES-YOUR-BUILD-HOOK with the build hook url you created in Netlify dashboard. Now site will rebuild every morning, I hope this is useful to you!