Repository navigation
Delete custom CI gates that stock tools cover - #220
Merged
Merged
Conversation
Remove repository scripts and tests that reimplemented checks already provided by pnpm, oxlint, actions/cache, TanStack Query and Reassure: - The changed-coverage gate and its Coverage-Rationale escape. Nothing else read the coverage report, so Vitest no longer collects it. - write-buster.mjs and the generated persist-buster.ts. The persisted query cache is now busted by the running expo-updates update id, or the native version and build number when updates are off, so each build or update starts with one cold sync. - check-node-version.mjs. engineStrict makes pnpm install and pnpm run fail under any Node other than engines.node. - jest-cache-key.mjs, replaced by a hashFiles() cache key. - check-quality-budget.mjs, replaced by oxlint ban-ts-comment and no-warning-comments over suppression directives. - The Vitest stall guard, the IPC, git-env, local Jest worker, spell coverage and executable-script tests. Test git processes now run without the hook's GIT_* variables, stripped in the Vitest config. The job timeout table is now a check that every job sets one. - check-native-assets.mjs and .native-assets.json. - The render-count gate, its baselines, its base-tree checkout and the use-tree-node action. The Reassure tests assert each scenario's render count themselves.
Pull request footprint
|
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.
Removes repository scripts and tests that rebuilt checks pnpm, oxlint, actions/cache, TanStack Query and Reassure already provide. Apart from the cache buster wiring, no product code changes.
What was deleted and what replaces it
scripts/check-changed-coverage.mjs,scripts/core-coverage-scope.json, the "Gate changed core coverage" CI step, theCoverage-Rationale:PR-body escape,test/ci/changed-coverage.test.tsvitest runno longer collects coverage and@vitest/coverage-v8is removed.scripts/write-buster.mjs, generatedpackages/core/src/runtime/persist-buster.ts,buster:check,buster:bumpbusteroption, set to theexpo-updatesupdateId(the embedded update's id in a store build, the downloaded update's id after an OTA update). When updates are off, as in development, it falls back toexpo-application's version and build number. Every build or update now starts with one cold sync. A new composition-root test checks that a cache saved by an earlier build, or by an earlier update of the same build, is removed and not restored.scripts/check-node-version.mjs, thepreinstallandcheck:nodescriptsengineStrict: trueinpnpm-workspace.yaml, plus the existingengines.node. Checked locally: with a mismatched Node, bothpnpm installandpnpm runexit 1 withERR_PNPM_UNSUPPORTED_ENGINE. WithoutengineStrictthey only warn.scripts/jest-cache-key.mjs,test/ci/jest-cache-key.test.tsactions/cachekey fromhashFiles('.nvmrc', 'pnpm-lock.yaml', 'packages/native/babel.config.js', 'packages/native/jest.config.js'). The repo has no local Babel plugins, so those files cover what the script hashed.scripts/check-quality-budget.mjs,test/ci/quality-budget.test.tstypescript/ban-ts-comment(bans@ts-expect-error,@ts-ignoreand@ts-nocheck), and oxlintno-warning-commentswith the termsoxlint-disable,eslint-disableandlint/complexity/noExcessiveCognitiveComplexity. That covers Biome complexity suppressions too, so no grep is needed. The script's single-owner checks forDAY_MS, the day-key formatter, storage keys andreadFailureOfare dropped, with no replacement.test/support/stall-guard.ts, its reporter entry,test/ci/stall-guard.test.tsand fixtures,test/ci/ipc-serialization.test.tstimeout-minutes.test/support/git-env.ts,test/ci/git-env.test.tsGIT_*from the environment before workers start. Checked locally: withGIT_DIRpointed at another repository, the git-using tests pass and leave it untouched. Without the strip, they fail.test/ci/local-jest-workers.test.ts,test/ci/spell-coverage.test.ts,test/ci/executable-scripts.test.tsjob-timeoutstable of slowest run timesruns-onsetstimeout-minutes.scripts/check-native-assets.mjs,.native-assets.json,test/ci/native-assets.test.tsscripts/check-render-counts.mjs,scripts/render-count-baselines.json, the base-tree checkout and both base-measuring steps inrender-performance, theRender-Count:PR-body escape,.github/actions/use-tree-node,test/ci/render-performance.test.ts,test/ci/second-tree-node.test.tsmeasureRendersitself (expect(meanCount).toBe(n)), using the same numbers as the old baselines.render-performanceis now a plainpnpm --dir packages/native perf:renderrun. The 20% duration gate on "Library first mount" is dropped. The base-tree action and its test only existed for the base checkout.Also removed:
checkjob'sfetch-depth: 0andpull-requests: read, and the same two settings onrender-performance. Only the deleted gates used them.README.mdtext about the removed escapes, plus a stale mention of theBinary-Size:escape and thefootprint-basejob.The footprint job already only posts a report. No
Product-Growth,Binary-SizeorComment-Loadparsing remained.Required checks
.github/required-checks.jsonis unchanged, because every job keeps its name. No ruleset changes are needed.Net lines
scripts/test/(test/ciandtest/support)test/ci.github/packages/core/src,packages/native/src,packages/native/app).native-assets.jsonVerification
pnpm checkpasses.pnpm --dir packages/native perf:renderpasses.timeout-minutes, and a TypeScript or complexity suppression comment.