Repository navigation
Deduplicate CI setup and drop stale configuration - #193
Merged
Merged
Conversation
CI: - The iOS simulator boot, repeated in both iOS lanes and the perf probe, is the boot-ios-simulator composite action. - The Maestro CLI install, repeated with its version and checksum in four lanes, the perf probe and prepare-ios-ui.sh, is the maestro-cli action over scripts/install-maestro.sh, which holds the one pin. The cache key is unchanged, so existing cache entries still hit; the perf probe now restores the CLI from the cache too. - Enable KVM, which preceded every use of the android-emulator action, is that action's first step. - Device lanes run when one of these actions changes, as they did when the steps lived in ci.yml. - The two suppression gates are one script with a test, and the JSON file holding a single 0 is gone. Unused package.json aliases and the audit script that pnpm's own audit command shadows are gone. - The concurrency comment states the rule instead of its history. Tests read jobs with their local actions inlined, so each assertion still checks the steps a job runs. The Xcode pin check covers the boot action, and the runner build is held to the CLI's Maestro release. Stale configuration: dependency-cruiser patterns for packages that are not installed, its rule that duplicated core-stays-portable-node, and web-era comments; 35 unused cspell words; ignore entries for web and Capacitor directories in cspell, biome, dprint and .gitignore; and the web app in pnpm-workspace.yaml and a tokens test name.
Pull request footprint
User-delivered artifact sizes
Most complex product function
|
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.
The last batch of the retroactive cleanup of #24: "PR 4: CI config deduplication" and "PR 5: Stale configuration and comments" from the 2026-10-21 cleanup audit. They are one PR because both are configuration hygiene. Every item was re-checked against current
feat/expo-native(5e17033) first. No gate, job or timeout changes, and the job-timeouts and filtered-run-list gates pass.CI deduplication (audit PR 4)
native-e2e-ios-light,ui-screenshots-ios-darkand the perf probe.github/actions/boot-ios-simulator. Partly done, see below.android-emulatorprepare-ios-ui.sh.github/actions/maestro-clioverscripts/install-maestro.sh, which holds the one pin. The cache key still readsmaestro-<os>-<arch>-2.10.0-<sha256>, so existing cache entries hit. The perf probe's two jobs now restore the CLI from the cache as well, instead of downloading it every run.package.jsonaliases nothing runs (lint,check:md,check:knip,check:dup,test:coverage) and anauditscript shadowed by pnpm's ownauditcheckalready inlines them, andaudit-dependencies.shcallspnpm auditdirectly.0check-quality-budget.mjs, with a new test. It had none.Not done: the rest of the iOS lane setup is still written out in both lanes: download and unpack the app, the runner, re-embed, the fake Trakt server. Those steps branch on
needs.native-ios.result, the fingerprint output and the proof-copy input, which a composite action can't read, so each would become an action input. The step-order tests pin them line by line. The remaining duplication is about 25 lines per lane.USER_FACINGnow covers the three device-lane actions andinstall-maestro.sh. A change to the boot or install steps still runs the device lanes, as it did when the steps were written inci.yml.Tests
readWorkflowJobs(path, { withActions: true })inlines a job's local input-less actions at its step indent, so the boot-order, accessibility, daemon, host-resource and Maestro-cache tests still assert the steps each lane runs, not the call site. A test that needs the call site reads the job as written.prepare-ios-ui.sh's download tests move toinstall-maestro.sh: cache hit and miss, plus a stop on each of curl, shasum and unzip failing.xcode-selecttoo;Stale configuration and comments (audit PR 5)
.dependency-cruiser.cjs:node_modules/bans foridb-keyval,radix-ui,@tanstack/react-router,@tanstack/react-virtualandlucide-react. None is inpnpm-lock.yaml, so the patterns can't match.domain-no-node-builtins, whichcore-stays-portable-nodealready covers.cspell.json: removed 35 words that appear nowhere in the checked files, even as substrings, and thedev-dist,test-results,ios/**andandroid/**ignores.biome.jsonc,dprint.jsonand the lefthook comment that named them..gitignore: removeddev-dist/,.wrangler/,test-results/,design-review/andjournal/. Removed the.env.example,.env.testand.env.mocknegations, which name files that no longer exist..env*stays ignored.pnpm-workspace.yaml: removed the "native package is not here yet ... web app" sentence.tokens.test.ts: the test name no longer cites the web app's--color-border.Mutation check
Each break was applied alone:
node:fsdepcruise:core-stays-portable-nodereact-domdepcruise:core-stays-portableanddomain-stays-puremaestro-cliactionpinned-tools.test.tspinned-tools.test.ts,ios-maestro-readiness.test.tsinstall-maestro.shskips the checksumios-maestro-readiness.test.tsios-accessibility.test.tsrelease-paths.test.tsquality-budget.test.tsquality-budget.test.tsFootprint
No product code or bundle changes.
.github,scripts)The device lanes on this PR are the first run of the three actions.
pnpm checkpasses on Node 22.23.4.