Skip to content

Add pnpm pre-ci mirroring PR CI gates, with manifest drift guard#7733

Draft
dmerand wants to merge 1 commit into
donald/dx-codegen-aggregatorfrom
donald/dx-pre-ci
Draft

Add pnpm pre-ci mirroring PR CI gates, with manifest drift guard#7733
dmerand wants to merge 1 commit into
donald/dx-codegen-aggregatorfrom
donald/dx-pre-ci

Conversation

@dmerand
Copy link
Copy Markdown
Contributor

@dmerand dmerand commented Jun 5, 2026

WHY are these changes introduced?

No single local command runs what the PR pipeline checks, so lint/type-check/knip/codegen/test failures surface only after pushing. And any local "run the checks" helper drifts from tests-pr.yml as gates and pinned versions change.

WHAT is this pull request doing?

  • pnpm pre-ci (also dev pre-ci) runs the local gates in CI-parity order — type-check, lint, build, knip, graphql + oclif codegen checks, unit tests — prints a pass/fail summary, and lists the skipped CI-only gates with reasons. It mirrors CI's full targets (green locally implies green in CI); slower than the affected-only dev check.
  • bin/ci-gates.js is the single source mapping each tests-pr.yml job (by job id) to a pre-ci command or a ci-only reason.
  • pnpm check-ci-gates fails if a workflow job is unclassified, the manifest names a removed job, or the Node/pnpm versions in dev.yml and tests-pr.yml disagree.
  • A CI gate manifest job runs that guard on every PR (~10s, no install); pre-ci runs it too.

Not user-facing.

How to test your changes?

  1. pnpm check-ci-gates passes.
  2. Add an unclassified job to tests-pr.yml, or change DEFAULT_NODE_VERSION → it fails with a specific message.
  3. pnpm pre-ci (or dev pre-ci) runs the set and summarizes.

Notes

  • The guard keys on job ids, not display names, because matrix jobs interpolate ${{ … }}.
  • pre-ci regenerates files via the codegen checks — review git status afterward. On main this surfaces the pre-existing config:autoupgrade drift noted in the base PR.
  • Adds one fast required check by design; classify any new gate in bin/ci-gates.js.

Post-release steps

None.

@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Jun 5, 2026
Copy link
Copy Markdown
Contributor Author

dmerand commented Jun 5, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant