Repository navigation
ci(ios): drop the background Simulator boot and the duplicate t3/ios-mvf push run #58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: t3/ios-mvf
Are you sure you want to change the base?
Changes from all commits
5e43ab5
f765a60
24a4af8
e0ba726
3c1298a
7f1037e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,8 +1,10 @@ | ||||||
| name: iOS | ||||||
|
|
||||||
| on: | ||||||
| # No push trigger for t3/ios-mvf: PR #10 (t3/ios-mvf -> main) already tests every merge into | ||||||
| # it, and carries full-ui so the audit runs there. A push run would take a second macOS slot. | ||||||
| push: | ||||||
| branches: [main, t3/ios-mvf] | ||||||
| branches: [main] | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: git diff --no-ext-diff --unified=30 29ebe846a3dac8c9e6a60ce3a96bc7cd3e4bff48 7f1037e0cb2f32be1c52f0394a8ca2e47337d00b -- .github/workflows/ios.yml CONTRIBUTING.md
printf '\n--- reviewed workflow ---\n'
git show 7f1037e0cb2f32be1c52f0394a8ca2e47337d00b:.github/workflows/ios.yml | sed -n '1,190p'
printf '\n--- reviewed contributing excerpt ---\n'
git show 7f1037e0cb2f32be1c52f0394a8ca2e47337d00b:CONTRIBUTING.md | sed -n '25,45p'
printf '\n--- related repository guidance ---\n'
rg -n -i 'workflow_dispatch|full-ui|manual.*(run|dispatch)|run workflow|t3/ios-mvf|accessibility audit' .github CONTRIBUTING.md README.md 2>/dev/null || trueRepository: SamGu-NRX/BaseScanning Length of output: 25781 🌐 Web query:
💡 Result: Preserve conflict-time audit coverage for PR GitHub skips Restore the Suggested automatic fallback- branches: [main]
+ branches: [main, t3/ios-mvf]📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsThere was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/ios.yml
Line: 7
Comment:
**Draft PR leaves branch unchecked** If PR #10 is marked draft while work continues on `t3/ios-mvf`, updates to that branch trigger PR events, but the iOS job skips drafts. Removing the branch’s push trigger means those commits receive no iOS workflow run; previously, the push run checked them regardless of PR state.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Caretaker check at 7f1037e: confirmed, but only while #10 is a draft (today it isn't). With There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed — the caretaker check makes this conditional rather than an always-present gap. While PR #10 is ready for review, its |
||||||
| paths: | ||||||
| - "ios/**" | ||||||
| - "!ios/**/*.md" | ||||||
|
|
@@ -65,9 +67,9 @@ jobs: | |||||
| xcodebuild -version | ||||||
| swift --version | ||||||
|
|
||||||
| # Booting takes 2 to 3 minutes and needs nothing from the build, so it runs alongside the | ||||||
| # steps below; the UI test step waits for it. | ||||||
| - name: Boot the Simulator in the background | ||||||
| # Booting in the background was tried and dropped: on the runner's 3 cores it slowed | ||||||
| # swift test and the builds by about 6 minutes to save 2:40. xcodebuild boots it at test time. | ||||||
| - name: Find the Simulator | ||||||
| run: | | ||||||
| runtime="com.apple.CoreSimulator.SimRuntime.iOS-${SIM_OS//./-}" | ||||||
| udid="$(xcrun simctl list devices available -j \ | ||||||
|
|
@@ -79,7 +81,6 @@ jobs: | |||||
| exit 1 | ||||||
| fi | ||||||
| echo "SIM_UDID=$udid" >> "$GITHUB_ENV" | ||||||
| nohup xcrun simctl bootstatus "$udid" -b > "$RUNNER_TEMP/simulator-boot.log" 2>&1 & | ||||||
|
|
||||||
| # The package's drift test compares the vendored server schemas with the server's own copies: | ||||||
| # the checkout's files once that branch merges, else the t3/server branch, which the shallow | ||||||
|
|
@@ -141,12 +142,6 @@ jobs: | |||||
| -destination "generic/platform=iOS" CODE_SIGNING_ALLOWED=NO COMPILER_INDEX_STORE_ENABLE=NO | ||||||
| HOUSESCAN_GIT_COMMIT="${GITHUB_SHA::12}" build | ||||||
|
|
||||||
| - name: Wait for the Simulator | ||||||
| timeout-minutes: 10 | ||||||
| run: | | ||||||
| xcrun simctl bootstatus "$SIM_UDID" -b | ||||||
| echo "Booted $SIM_NAME on iOS $SIM_OS ($SIM_UDID)." | ||||||
|
|
||||||
| - name: UI test the whole flow in the Simulator | ||||||
| # Replays the committed synthetic wall (ios/HouseScanUITests/Fixtures/synthetic-wall) with | ||||||
| # -autopilot and the bundled sample result. | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,7 +33,7 @@ The `size:*` label describes the effective diff. It is a review signal, not a me | |
| | Label PR size | a pull request opens or updates | none | | ||
| | TestFlight | someone runs it from the Actions tab | none | | ||
|
|
||
| The iOS UI tests skip the every-state accessibility audit on pull requests, because it adds about 10 minutes and macOS runners are scarce. Add the `full-ui` label when a pull request changes screens or copy; pushes to `t3/ios-mvf` and `main` always run it. | ||
| The iOS UI tests skip the every-state accessibility audit on pull requests, because it adds about 10 minutes and macOS runners are scarce. Add the `full-ui` label when a pull request changes screens or copy; pushes to `main` always run it, and PR #10 (`t3/ios-mvf` into `main`) carries the label, so every merge into `t3/ios-mvf` runs it once. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Prompt To Fix With AIThis is a comment left during a code review.
Path: CONTRIBUTING.md
Line: 36
Comment:
**Per-merge audit promise overstates coverage** If another merge updates PR #10 while its previous iOS run is still in progress, the workflow cancels that run. Only the latest merged state gets audited, so the claim that *every* merge runs the audit once could mislead contributors about what was checked. Qualify the wording to account for cancelled runs.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @AidenJohnston Caretaker check at 7f1037e: confirmed as a wording issue. Pull-request runs for #10 share a concurrency group with |
||
|
|
||
| `make check` runs the three local suites. They need uv, Node 24 with pnpm, and Xcode 26 or newer; each directory's README has details. No check is required by branch rules yet. Don't call one required until the rules require its status. | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When PR #10 has a merge conflict with
main, subsequent iOS merges intot3/ios-mvfreceive neither the deleted push run nor a pull-request run: GitHub states thatpull_requestworkflows do not run while the pull request has a merge conflict. Because this workflow now relies entirely on that long-lived integration PR, its claim to test every merge stops holding until someone resolves the conflict; retain branch-triggered coverage or use another trigger that does not depend on PR mergeability.Useful? React with 👍 / 👎.