From e7f1860dd6f857bb68a351a8d2f2cf439ccd5453 Mon Sep 17 00:00:00 2001 From: ciotlosm Date: Sat, 11 Jul 2026 19:07:36 +0300 Subject: [PATCH] chore(workflows): deploy on release-bot pushes only, not on every merge Invert the actor guard on deploy workflows: trigger deploys only when the release bot pushes (i.e. a release/calver-* PR just auto- merged into main). Workflow-only PRs (docs, standards sync, CI config) no longer trigger a Cloudflare Pages / Workers rebuild. This is the cleaner "deploy on release" model: every deploy is tied to a version bump, the deploy log matches the version history, and you can merge several non-deploy PRs in a row without piling up redundant deploys. Hotfix escape hatch: workflow_dispatch (unchanged). Depends on GitHub's auto-merge behavior: when the bot enables auto-merge on a release/calver-* PR, the resulting `push` event on main has github.actor == n3ary-release-bot[bot]. If GitHub ever changes this, the deploy would silently stop firing and we'd need to revisit this guard. Refs: n3ary/standards#22 (org-automation design) --- .github/workflows/deploy-branding.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-branding.yml b/.github/workflows/deploy-branding.yml index a6c511c..e34f5ec 100644 --- a/.github/workflows/deploy-branding.yml +++ b/.github/workflows/deploy-branding.yml @@ -31,7 +31,7 @@ jobs: # `push` event fires with `github.actor = n3ary-release-bot[bot]`. # Branding has no version concept, so the bot's commits are # empty. Re-deploying is harmless but wasteful. - if: "!contains(github.event.head_commit.message, '[skip ci]') && github.actor != 'n3ary-release-bot[bot]'" + if: "!contains(github.event.head_commit.message, '[skip ci]') && github.actor == 'n3ary-release-bot[bot]'" runs-on: ubuntu-latest steps: