Skip to content

docs-ci: build the site - #124

Merged
vcode-sh merged 1 commit into
mainfrom
ci/docs-build-gate
Aug 7, 2026
Merged

docs-ci: build the site#124
vcode-sh merged 1 commit into
mainfrom
ci/docs-build-gate

Conversation

@vcode-sh

@vcode-sh vcode-sh commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Every check in Docs CI reads content and compares it against something. None of them ran Next.

That is how a docs site that could not be built sat on main behind a green tick — twice tonight. A floating oven/bun:1 tag that took the Docker build with it, and a duplicated @base-ui/react that left a React context unresolvable at prerender. Neither was visible to a single gate in this workflow.

What it does

A separate build job, so it runs alongside the content checks and a failure tells you which half broke.

  • bun install --frozen-lockfile — the committed lockfile is what deploys. A build that only passes once resolution drifts is not a pass, and that drift is precisely what hid the base-ui duplication.
  • node ./node_modules/next/dist/bin/next build — the same command web-docs/Dockerfile runs, with the same NEXT_PUBLIC_URL. Gating the path that ships rather than a convenient local approximation. Bun installs; Node builds.
  • Bun pinned to 1.3.14, Node to 26, matching the Dockerfile and the rest of CI.

No exact page count is asserted. The build failing is the signal; pinning 223 would just break every time a page is added.

Pinned so it cannot quietly go away

fchub-ci-contract.test.mjs now asserts the job runs both commands. Mutation-checked rather than assumed: replacing the build step with an echo fails the contract.

Had this existed this morning, both of tonight's breakages would have failed on the commit that introduced them instead of being found by hand.

Every check in this workflow reads content and compares it against
something. None of them ran Next. That is how a docs site that could not
be built sat on main behind a green tick — twice: a floating base-image
tag that took the Docker build with it, and a duplicated @base-ui/react
that left a React context unresolvable at prerender. Neither was visible
to a single gate in this file.

A separate job, so it runs alongside the content checks and a failure
says which half broke. It installs with --frozen-lockfile, because the
committed lockfile is what deploys and a build that only passes after
resolution drifts is not a pass. It runs Next through Node directly, the
same command web-docs/Dockerfile runs, with the same NEXT_PUBLIC_URL —
gating the path that ships rather than a convenient approximation.

Pinned in fchub-ci-contract so the gate cannot quietly disappear later.
Mutation-checked: replace the build step with an echo and the contract
fails.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@vcode-sh
vcode-sh merged commit 358500d into main Aug 7, 2026
23 checks passed
@vcode-sh
vcode-sh deleted the ci/docs-build-gate branch August 7, 2026 22:58
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