ci: build every pull request before it can land - #70
Merged
Merged
Conversation
The deploy workflow only fires on push to main, so nothing built a change before it merged — a broken build was only visible once it was already on main, and by then the site simply stops updating. This adds a build-only check on pull_request. No deploy step, and it does not overlap with main.yml (push vs pull_request). Two deliberate choices: - node-version is pinned to "20" because that is withastro/action@v2's default, which is what deploy actually runs on. Matching it is the point: a green check here means the deploy will build on the same Node. - npm ci rather than npm install, so a lockfile that drifted from package.json fails loudly instead of quietly resolving something else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SCGof6E8MrS772HhsYZT5a
serros404
approved these changes
Sep 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
main.ymlonly fires onpushtomain. Nothing builds a change before it merges — so a broken build is only visible once it is already onmain, and at that pointdeploynever runs and the site silently stops updating (Pages keeps serving the last good deployment).This closes that gap with a build-only check on
pull_request. No deploy step. Does not overlap withmain.yml—pushvspull_request.Two deliberate choices
node-version: "20"— that iswithastro/action@v2's default, which is whatdeployactually runs on. The workflow never overrides it. Matching it here is the entire point: a green check means the deploy will build on the same Node, not merely on some Node.npm ci, notnpm install— the deploy action runsnpm install, which quietly resolves around a lockfile that drifted frompackage.json.npm cifails loudly instead, so drift surfaces in review rather than after the merge.Self-testing
pull_requestworkflows run from the PR's merge ref, so this PR builds itself. The check on this page is the workflow proving it works.Suggested sequence
Merging this first means #68 and #69 get a real Node 20 build before they land. Right now both were only verified locally on Node 24 — inside every package's supported range, but not the runtime the deploy uses. Once this is on
main, a rebase or an empty commit on each closes that last gap.🤖 Generated with Claude Code