From 7aa2434c6be083e995449553af6e424067e2a689 Mon Sep 17 00:00:00 2001 From: ciotlosm Date: Sat, 11 Jul 2026 15:28:12 +0300 Subject: [PATCH] chore(workflows): skip deploy when release bot pushes to main The n3ary release bot opens release/calver-* PRs on every PR merge to main. The PR auto-merges and lands a version-only commit on main; the push event then fires with github.actor = n3ary-release-bot[bot]. deploy.yml triggers on push: branches: [main]. It was not filtered to skip the bot, so it ran on every release bump. The bump commit is a no-op (branding has no version concept), so re-deploying is harmless but wasteful. Add a job-level guard combined with the existing [skip ci] guard: skip when github.actor == "n3ary-release-bot[bot]". Manual workflow_dispatch still works (actor != bot). Refs: n3ary/standards#22 --- .github/workflows/deploy-branding.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-branding.yml b/.github/workflows/deploy-branding.yml index 42b9443..a6c511c 100644 --- a/.github/workflows/deploy-branding.yml +++ b/.github/workflows/deploy-branding.yml @@ -26,8 +26,13 @@ permissions: jobs: deploy: + # Skip deploy when the release bot (n3ary-release-bot) is the actor. + # The bot's release/calver-* PRs land on main as a squash merge; the + # `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]'" runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout