AI Workshop: learn to build apps with AI →
Git Advanced: Trigger deploys on Netlify with submodules

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


I wanted to rebuild my site on Netlify any time I did a new commit on a Git submodule included in the repo.

Unfortunately, Netlify does not do this by default, only the main repository is “watched” for new commits.

So I did this.

I went to the Deploy settings and in “Build hooks” I clicked “Add build hook”.

Saving this gave me a unique URL I could call, something like https://api.netlify.com/build_hooks/UNIQUE_STRING.

Then I created a GitHub Action in the submodule repository:

name: Trigger redeploy on Netlify
on:
  push:
    branches: [ "main" ]
jobs:
  build:
    name: Make POST request
    runs-on: ubuntu-latest
    steps:
      - name: Curl request
        shell: bash
        env:
          UNIQUE_STRING: ${{ secrets.NETLIFY_BUILD_HOOK_UNIQUE_STRING }}
        run: curl -X POST -d {} https://api.netlify.com/build_hooks/$UNIQUE_STRING

Add the Netlify UNIQUE_STRING value you got above to the NETLIFY_BUILD_HOOK_UNIQUE_STRING Action secret in your repo under Settings → Secrets → Actions.

Commit the action and the deploy should already be working:

Lessons in this unit:

0: Introduction
1: Working with Remotes
2: Squashing Commits
3: Rebase vs Merge
4: Git Bisect for Debugging
5: Git Worktrees
6: Git Submodules
7: Understanding Detached HEAD
8: Managing Secrets in Git
9: Git Workflows and Best Practices
10: How to push to 2 repositories at the same time and keep them in sync
11: How to update a Git branch from another branch
12: Git, detached HEAD
13: ▶︎ Trigger deploys on Netlify with submodules
14: A Git Cheat Sheet
15: Git, squashing vs not squashing
16: An incomplete list of great Git tutorials
17: Git, what if you forgot to add a file to a commit?
18: Git workflow to manage work on multiple branches
19: How to set up the Git SSH keys