8000 ci: serve reylo.dev from a release branch each release moves by colinhacks · Pull Request #129 · colinhacks/reylo · GitHub
[go: up one dir, main page]

Skip to content

ci: serve reylo.dev from a release branch each release moves - #129

Merged
colinhacks merged 3 commits into
mainfrom
docs-follow-release
Oct 27, 2026
Merged

colinhacks merged 3 commits into
mainfrom
docs-follow-release

Conversation

@colinhacks
Copy link
Copy Markdown
Owner

reylo.dev deployed from every push to main, while npm moves only when a release is dispatched, so the docs could describe for days what no published version does. For three days after 0.5.0 they described Slonik support, ISO 8601 intervals and .try(), none of which npm served.

The site will instead serve a release branch, which each release moves:

  • release.yml's finish job now pushes the release's tagged commit to release with the deploy key, after npm serves every version, right after it pushes the tag. It follows the tag rather than the run's commit, because a dispatch that only rewrites a release's notes runs on a main that may hold unreleased changes. The push is forced, since docs fixes cherry-picked onto release between releases aren't ancestors of the next release commit, though main holds them too. The key file now goes through an exit trap, so a failing command can't leave it on disk.
  • AGENTS.md says how the docs deploy now. A docs change that holds for the released version can go live before the next release, by cherry-picking it onto release.

Outside this PR, Vercel's production branch moves from main to release once the branch exists, and a ruleset keeps release to fast-forwards for everyone but the deploy key. Pushes to main keep building previews.

actionlint passes, and zizmor reports the same single low finding as on main.

Copilot AI balanced review requested due to automatic review settings October 27, 2026 02:55
@vercel
vercel Bot commented Oct 27, 2026 •
Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
reylo Ignored Ignored Preview Oct 27, 2026 3:48am UTC

Request Review

Copilot AI left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@pullfrog pullfrog Bot left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

A notes-only re-dispatch, or a re-run of finish, force-pushes release back to the tag and drops any docs fixes cherry-picked onto it since — which is exactly the workflow AGENTS.md now reco 8000 mmends.

Reviewed changes

I reviewed moving reylo.dev from deploying on every push to main to deploying from a release branch that each release moves.

  • finish moves release to the tagged commit: once npm serves every version, the tag step now also force-pushes the tag's commit (resolved through ls-remote and fetched when the depth-1 checkout lacks it) to refs/heads/release with the deploy key.
  • Key file cleanup through trap: the deploy key is now removed on any exit from the step, not only after a successful push.
  • AGENTS.md docs deploy rule: production docs come from release, a push to main builds a preview, and a docs fix that holds for the released version can be cherry-picked onto release.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using claude-opus-5-5 | 𝕏

Comment thread .github/workflows/release.yml Resolved
@pullfrog pullfrog Bot left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ The earlier concern is fixed. One minor suggestion inline, about how a failed compare is handled.

Reviewed changes

I reviewed 4b09aa6, which stops the release step from moving release back when that branch already holds the tag.

  • Compare before the forced push: the step now asks GitHub's compare API for <tag>...release with the job token. If the answer is identical or ahead, release is left as it is. Otherwise (behind, diverged, or the branch is missing) it is force-moved to the tag. This keeps docs fixes cherry-picked onto release through a notes-only re-dispatch or a re-run of finish.
  • Step comment updated: the comment now says when the move is skipped, and why it uses the compare API instead of the shallow checkout.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using claude-opus-5-5 | 𝕏

Comment thread .github/workflows/release.yml Resolved
@pullfrog pullfrog Bot left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found. The earlier concern about a failed compare is fixed.

Reviewed changes

I reviewed 5aad676, which changes how the release step decides that release is missing.

  • Separate existence check: git ls-remote --exit-code --heads origin release now decides whether the branch exists. Exit 2 is the only result that counts as missing. Any other non-zero exit stops the step with an ::error::, and the EXIT trap still deletes the key file.
  • Compare with no fallback: gh api .../compare runs only when the branch exists. It no longer has || status=missing, so under the default bash -e shell a 5xx, a rate limit or a network error fails the step instead of force-moving release.

Pullfrog  | View workflow run | Using claude-opus-5-5 | 𝕏

@colinhacks
colinhacks merged commit 5b9a07a into main Oct 27, 2026
11 checks passed
@colinhacks
colinhacks deleted the docs-follow-release branch October 27, 2026 03:59
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.

2 participants

0