Skip to content

Fix publish-release trigger and push auth - #2700

Merged
joelhawksley merged 1 commit into
mainfrom
joelhawksley-redesigned-sniffle
Aug 24, 2026
Merged

Fix publish-release trigger and push auth#2700
joelhawksley merged 1 commit into
mainfrom
joelhawksley-redesigned-sniffle

Conversation

@joelhawksley

Copy link
Copy Markdown
Member

Follow-up. After #2697 (Release 4.14.0) merged to main, .github/workflows/publish-release.yml did not run, so 4.14.0 was never tagged, gh-pages was not updated, and no GitHub Release was created.

Root cause

The workflow gate was:

if: startsWith(github.event.head_commit.message, 'release ')

But the merge commit created by GitHub's PR merge is:

Merge pull request #2697 from ViewComponent/release-4-14-0

Release 4.14.0

That starts with Merge pull request… (and the PR title's Release is capitalized), so the gate never matched. It would only match if someone pushed a raw release X.Y.Z commit directly to main — which is not how the release flow works today.

Additionally, the checkout used persist-credentials: false, so script/publish's git push origin $tag and git push origin gh-pages --force would fail to authenticate — same class of bug as the release workflow.

Fix

  • Broaden the gate to also match the merge-commit body containing Release , so a normal PR merge triggers publish.
  • Add workflow_dispatch: so publish can be re-triggered manually when a release lands but was missed (needed right now to publish 4.14.0).
  • Set persist-credentials: true so tag and gh-pages pushes authenticate.

Recovery for 4.14.0

Once this merges, go to Actions → Publish ReleaseRun workflow on main to tag v4.14.0, push gh-pages, and create the GitHub Release. script/publish is already idempotent for the tag creation (git rev-parse --quiet --verify check + || true on the tag push), so a re-run is safe.

The workflow gate was:

  if: startsWith(github.event.head_commit.message, 'release ')

But when a release PR is merged via the GitHub UI (as was done for
#2697 → main), the merge commit message is:

  Merge pull request #2697 from ViewComponent/release-4-14-0

  Release 4.14.0

That does not start with 'release ' (lowercase), so the workflow never
ran and script/publish did not tag or publish 4.14.0.

Also, the checkout used persist-credentials: false, so even if the
gate had passed, script/publish's 'git push origin $tag' and
'git push origin gh-pages --force' would fail to authenticate — the
same class of bug we hit in the release workflow.

- Broaden the gate to also match the merge-commit body ('Release ')
  and add workflow_dispatch so publish can be re-triggered manually
  when a release lands but the gate was missed.
- Set persist-credentials: true so tag and gh-pages pushes work.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 217f0a0d-a9f2-4607-9643-5fcb3e34f20f
@joelhawksley
joelhawksley merged commit 50cb920 into main Aug 24, 2026
22 of 24 checks passed
@joelhawksley
joelhawksley deleted the joelhawksley-redesigned-sniffle branch August 24, 2026 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant