ci: mark site/ as the deprecated docs location - #3384
Merged
Conversation
site/ is no longer the source for docs.estuary.dev. Cloudflare Workers now serve that host from estuary/docs, with connector pages coming from estuary/connectors. Both site/ workflows still ran as though nothing had changed, and one of them was actively wrong. docs-ci-prod.yaml: deprecation header and a new name: only, no functional change. It still builds site/ and deploys it to gh-pages, which together with this repo's Pages config (still cname: docs.estuary.dev) is the rollback path for the new site. It has to keep working until the transition ends. docs-ci-previews.yaml: dropped the rossjrw/pr-preview-action deploy and rewrote the sticky comment. The comment linked docs.estuary.dev/pr-preview/pr-N/, and that host is now the Worker, which holds no pr-preview content and returns 404 for all of them. Contributors were getting a green check plus a dead link, which reads as confirmation that a change shipped. The build steps stay: they are the only check that the gh-pages rollback target still compiles. Also in that file: dropped the closed trigger type and the matching if: guards, which existed only so pr-preview-action could tear down a preview directory; dropped BASE_URL, which now defaults to / exactly as the prod build already does; narrowed contents: write to contents: read; and renamed the job from deploy-preview, since the job id is the check name contributors see and that one was both wrong and reassuring. The removed Compute changed pages step held Docusaurus slug-derivation logic worth keeping if previews are rebuilt. The header says where to find it in history rather than leaving it to be rewritten naively. .github/CODEOWNERS: new file, scoped to /site/ only, so remaining site/ PRs get seen and redirected during the transition. Note that the estuary-org-default ruleset sets require_code_owner_review, so this makes code-owner approval required for site/ PRs rather than merely requested. Removal target for site/ and both workflows is 2026-09-30, tentative.
Adding /site/ @jwhartley @aeluce would have narrowed the approver set for every site/ PR to two people, because the estuary-org-default ruleset sets require_code_owner_review on the default branch. That makes a CODEOWNERS entry a merge gate rather than a hint, which is not the intent here: anyone in the org should still be able to approve a site/ PR, and PR authors should pick their own reviewers rather than have two names auto-requested. Also removed the line in the previews comment that told authors site/ PRs need docs-owner review before merging. That was only true with the CODEOWNERS entry in place, and leaving it would have been the same class of mistake this PR exists to fix: automation telling contributors something untrue. The redirect notice and the deprecation headers are unaffected. Reaching the authors of the 23 open site/docs PRs is now entirely the manual comment pass, with no CODEOWNERS nudge behind it.
This was referenced Aug 20, 2026
Closed
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.
Description:
site/stopped being the source fordocs.estuary.devat cutover on 2026-08-19. Cloudflare Workers now serve that host from estuary/docs, with connector pages coming from estuary/connectors. Both of this repo'ssite/workflows kept running as though nothing had changed, and one of them is actively wrong.docs-ci-previews.yamlposted a sticky comment linkinghttps://docs.estuary.dev/pr-preview/pr-N/. That host is now the Worker, which holds nopr-previewcontent. Verified 2026-08-20:So every contributor opening a
site/PR got a green check and a dead link, which reads as positive confirmation that their change shipped somewhere. 43 of the 89 open PRs touchsite/, and 23 of those touchsite/docs/.site/itself is not deleted here. It stays until the transition ends (2026-09-30, tentative) so it can serve as the rollback path.Two changes.
docs-ci-prod.yaml: deprecation header andname:only, no functional change. It still buildssite/and deploys togh-pages. That branch, plus this repo's Pages config (stillcname: docs.estuary.dev, sourcegh-pages,status: built), is the rollback path for the new site, and this workflow is the only thing keeping it current. It must keep working.The header names the second cleanup item that lives in no file: the Pages config. It is the rollback path today and a landmine after the transition, because it keeps claiming a hostname Cloudflare serves. Nothing in the repo would otherwise remind whoever deletes
site/.One rename beyond the header: the step
Deploy previewis nowDeploy to gh-pages (rollback artifact). It never deployed a preview.docs-ci-previews.yaml: keep the build, drop the deploy, rewrite the comment.rossjrw/pr-preview-action@v1. Its URL is dead, andgh-pagesalready carries 574 stalepr-preview/directories (counted 2026-08-20). This stops adding to them.site/is deprecated, here are both new repos, here is what to do, with a separate line for code PRs that only incidentally include a doc file.Smaller edits, all downstream of dropping the deploy:
closedtrigger type and the matchingif: github.event.action != 'closed'guards. They existed only sopr-preview-actioncould tear down a preview directory on close. Without it, aclosedrun skips every step.BASE_URL: /pr-preview/pr-N.site/docusaurus.config.js:10readsprocess.env.BASE_URL || "/", so the build now uses/, which is what the prod workflow already builds with daily.contents: writetocontents: read. Nothing writes any more.deploy-previewtodeprecated-site-build-check. The job id is the check name contributors see, and that one was both wrong and reassuring. No required status checks reference it; theestuary-org-defaultruleset sets none.Workflow steps:
Someone opens a PR touching
site/. Before: a build, a preview deploy intogh-pages, and a comment linking a URL that 404s.After: the same build, no deploy, and a comment that says
site/is deprecated, namesestuary/docsandestuary/connectors, says the change will not reach the site from here, and sayssite/is kept until 2026-09-30 as a rollback path. Nothing about review routing changes; whoever opens the PR still picks their own reviewers.Maintainers pushing to
mastersee no change at all.site/still deploys togh-pageson everysite/**push.Documentation links affected:
None. This changes no doc content, and nothing it builds is on the live site.
Notes for reviewers:
A CODEOWNERS entry was in this PR and has been removed on purpose. An earlier revision added
/site/ @jwhartley @aeluce. Dropped, because theestuary-org-defaultruleset setsrequire_code_owner_review: trueon the default branch, which makes any CODEOWNERS entry a merge gate rather than a hint. That would have narrowed the approver set for everysite/PR to two people. Approvals should stay open to anyone in the org, and PR authors should choose their own reviewers. The line in the sticky comment claimingsite/PRs need docs-owner review came out with it, since it is no longer true.Worth knowing that
estuary/flowcurrently has no CODEOWNERS file at all, so that ruleset rule is presently a no-op repo-wide. Adding one anywhere later is a bigger change than it looks.The slug-derivation logic is removed but not lost. The
Compute changed pagesstep became dead once the preview URL went, but it held careful Docusaurus URL-derivation logic: frontmatterslug, relative slugs resolved against the file's directory, and the category-index convention wherePostgreSQL/PostgreSQL.mdserves at/PostgreSQL/and not/PostgreSQL/PostgreSQL/. A naive path-to-URL version of this is wrong, and that mistake has already been caught once in review on the parked docs#7, which needs the same derivation. Recover it withgit log -p -- .github/workflows/docs-ci-previews.yaml. The header comment in that file says so too, so it is findable from the file and not only from this PR.Three things flagged rather than decided here.
The rewritten comment does not reach outside contributors. Fork PRs get a read-only
GITHUB_TOKENonpull_request, so the comment step cannot post, and this repo also requires approval before workflows run on fork PRs at all. Confirmed: docs: per-command Docker requirements for flowctl (#2968)聽#3184 (fork) has no comment and no checks, while docs: name the single MotherDuck metadata table, document splitting it聽#3382 (internal branch) has the sticky comment.pull_request_targetwould fix it and is the wrong trade, because it would build untrusted code with a write token. So three of the 23 opensite/docs/PRs (Update mcp-integration.md聽#3194, docs: per-command Docker requirements for flowctl (#2968)聽#3184, Update Flow product name references to Estuary in docs homepage聽#2964) can only be reached by a manual comment. That is tracked outside this PR.clean-exclude: pr-preview/indocs-ci-prod.yamlis left in place. Removing it would delete the 574 stale directories on the next deploy, which rewrites the rollback artifact. Left alone while rollback is live, with a comment saying so and pointing at cleanup time.Dependabot cannot be stopped the way it looks like it can. There is no
.github/dependabot.ymlin this repo, so the 20 open/sitePRs are Dependabot security updates, which come from a repo setting under Code security rather than a config file. Stopping them means changing that setting or closing the PRs, both outside this PR.Verification.
This PR touches no
site/**path, so it does not trigger the previews workflow itself. Verified on #3385, a throwawaysite/docs/PR based on this branch. Now closed.name, triggers, permissions, job id and step list.deprecated-site-build-check.site/PRs will have their dead preview link replaced by this notice on their next push, rather than getting a second comment.pr-preview/directory ongh-pages. Count unchanged at 574.BASE_URLremoval is safe:process.env.BASE_URL || "/"./pr-preview/404s and/200s on the live host.docs-ci-prod.yamlstill produces agh-pagescommit. It triggers on push tomasteronly, so this is checkable after merge, not before. Worth confirming on the firstsite/**push that lands afterwards.The #3385 run predates the CODEOWNERS removal. The build and the deploy-absence checks are unaffected by it. The comment body changed by one paragraph since, which is a text-only edit to a block scalar that still parses.
Deliberately not in this PR. Deleting
site/docs/, which would conflict all 23 open doc PRs and remove the rollback path. Closing the 20 Dependabot PRs, which is bulk PR closing on a public repo. #3371, which is held open on purpose.