Skip to content

ci(website): Skip Renovate docs-site previews for manifest-only changes - #4158

Merged
ntucker merged 2 commits into
masterfrom
cursor/skip-renovate-docs-preview-3c64
Oct 4, 2026
Merged

ntucker merged 2 commits into
masterfrom
cursor/skip-renovate-docs-preview-3c64

Conversation

@ntucker

@ntucker ntucker commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Vercel spends a docs-site preview build, and emails "Preview deployment failed for docs-site", on nearly every push to renovate/all-minor-patch (#4059). Those pushes only touch website/package.json, which website/scripts/vercel-ignore.sh counts as a site change. A dependency bump alone does not change the published site.

Solution

A short-circuit in the existing ignore script, which website/vercel.json already runs as ignoreCommand. On renovate/* previews, the script now adds pathspec excludes to SITE_PATHS for website package.json, yarn.lock, package-lock.json, pnpm-lock.yaml, and npm-shrinkwrap.json, including nested ones (website/**/). If nothing else in the site changed, the preview is skipped.

  • Real site or docs source changes still build, including on a Renovate branch.
  • The block sits after the production branch, which always exits, so production (master, rest-hooks-site, VERCEL_ENV=production) is unchanged.
  • Non-Renovate branches that bump website dependencies still build.
  • site-preview.yml is unchanged. It still typechecks and runs vercel build on GitHub runners for Renovate PRs, which costs no Vercel build credits.

vercel-ignore.test.sh gains cases for each of these, including a Renovate branch that merges master.

Open questions

None.

Open in Web Open in Cursor 

Renovate pushes were starting a docs-site preview whenever
website/package.json changed. The install command then exited 2 because
yarn prepare runs tsc, and react-native 0.87 removed InteractionManager
while packages/react still imports it.

Skip renovate/* previews whose only site changes are non-major website
dependency bumps. Also skip previews that would die in that prepare
failure, unless site or docs source changed. Production deploys are
unchanged.

Co-authored-by: Nathaniel Tucker <me@ntucker.me>
@changeset-bot

changeset-bot Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 9085394

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
docs-site Ignored Ignored Preview Oct 4, 2026 8:02pm UTC

Request Review

@ntucker ntucker left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Staff engineer (Cursor agent): LGTM.

Fails open, keeps production building, and only skips previews that cannot show a site change (Renovate non-major website manifests, or install dying in yarn prepare on the known RN 0.87 / InteractionManager break). Real site or docs diffs still build. The decide script is zero-dep for Vercel ignore, and the fixture suite covers the merge and major-vs-non-major cases that matter.

FOLLOW_UP after merge (not this PR): once packages/react drops the InteractionManager imports, delete the prepare-failure path in vercel-ignore-decide.js / vercel-ignore.sh and the matching fixtures so that special case does not linger.

Drop the node decision helper, version-range parsing, and the
InteractionManager / yarn prepare special case. Renovate previews now
skip by excluding website package.json and lockfiles from SITE_PATHS.
site-preview.yml returns to master's version.

Co-authored-by: Nathaniel Tucker <me@ntucker.me>
@cursor cursor Bot changed the title ci(website): Skip docs-site previews that die in yarn prepare ci(website): Skip Renovate docs-site previews for manifest-only changes Oct 4, 2026

@ntucker ntucker left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Staff engineer (Cursor agent): LGTM.

Simpler tip than the earlier decide/prepare-failure path: on renovate/* only, pathspec-exclude website manifests and lockfiles from SITE_PATHS, then reuse the existing preview decide. Production still fails open before that block. Real site or docs source still builds; non-Renovate website bumps still build; merge-of-master fixture covers the shallow-diff trap. site-preview.yml staying on GHA for Renovate is the right credit tradeoff.

No CHANGE_THIS_PR. The prior FOLLOW_UP about deleting prepare-failure is moot — that path is gone.

@ntucker
ntucker merged commit ef6bf47 into master Oct 4, 2026
22 checks passed
@ntucker
ntucker deleted the cursor/skip-renovate-docs-preview-3c64 branch October 4, 2026 20:09
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