From 49e215eba709cac50bcb93eb794abef09c53a94d Mon Sep 17 00:00:00 2001 From: ZJ van de Weg Date: Tue, 28 Jul 2026 11:04:32 -0700 Subject: [PATCH 1/3] Reduce duplicate CI/Netlify builds per PR push - test.yml now cancels in-progress runs for the same ref, matching sast-scan.yml, so rapid pushes don't queue redundant full builds. - netlify.toml skips branch-deploy builds since deploy previews already build every PR commit for the same content. --- .github/workflows/test.yml | 4 ++++ netlify.toml | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 587825e654..694faa0d9d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,6 +2,10 @@ name: Tests on: push +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: test_website: runs-on: ubuntu-latest diff --git a/netlify.toml b/netlify.toml index 39cf145a24..7cbdaeed33 100644 --- a/netlify.toml +++ b/netlify.toml @@ -88,7 +88,9 @@ status = 200 command = "npm run build:nuxt" [context.branch-deploy] -command = "npm run build:nuxt" +# Deploy previews already build every PR commit; skip the redundant branch-deploy +# build for the same commit to avoid double-building on every push. +ignore = "exit 0" [[plugins]] package = "netlify-plugin-cache" From 853f25fd2b309791b55cd233a1acb501e186c03b Mon Sep 17 00:00:00 2001 From: ZJ van de Weg Date: Mon, 3 Aug 2026 17:19:24 -0700 Subject: [PATCH 2/3] Keep cancel-in-progress off for main merge runs main has no required checks, so the post-merge Tests run is the only build that runs the hyperlink check over the full site. Cancelling it on every merge risks losing link-check coverage on a stacked set of PRs merged in quick succession. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 694faa0d9d..cef4839cdd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: push concurrency: group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: test_website: From 8592a2a63ab3a2d1ea427d99577eb5dc8007ff0d Mon Sep 17 00:00:00 2001 From: ZJ van de Weg Date: Tue, 18 Aug 2026 10:43:33 +0200 Subject: [PATCH 3/3] Keep the branch-deploy build command next to the ignore If the ignore ever stops skipping, a branch deploy should still build Nuxt only. Without a command in this context it falls through to the root [build] command, which also runs index:algolia and would write the search index from a branch. Trade-off worth knowing either way: a branch with no open pull request now gets no preview at all, since deploy previews only fire for pull requests. --- netlify.toml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/netlify.toml b/netlify.toml index 9e30b80ce0..b77ede80b8 100644 --- a/netlify.toml +++ b/netlify.toml @@ -103,8 +103,13 @@ status = 200 command = "npm run build:nuxt" [context.branch-deploy] -# Deploy previews already build every PR commit; skip the redundant branch-deploy -# build for the same commit to avoid double-building on every push. +# A pull request already gets a deploy preview for every commit, so a branch +# deploy of the same commit builds the site twice and takes a slot from the +# three concurrent builds Netlify gives us. Skip it. The command stays so that +# a branch deploy, should the ignore ever stop skipping, still builds Nuxt +# only, rather than falling through to the root [build] command, which also +# runs index:algolia and would write the search index from a branch. +command = "npm run build:nuxt" ignore = "exit 0" [[plugins]]