Repository navigation
ci: macos-26 / Xcode 26.6, run UI tests for real; fit Settings window to screen - #6
Merged
Merged
Conversation
- runs-on macos-14 -> macos-26 (macos-14 images are deprecated: actions/runner-images#13518); Xcode 16.2 -> 26.6, the image default. - actions/checkout v4 -> v7, actions/upload-artifact v4 -> v7, softprops/action-gh-release v2 -> v3 (Node 24 runtimes; no input changes affect these workflows). - Pipe xcodebuild through xcbeautify, which ships on the macos-26 image, instead of xcpretty, which does not. - Run ci.yml steps with `shell: bash` so they get `-eo pipefail`. Previously the default `bash -e` meant a failing xcodebuild build or test step piped into the formatter still reported success. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The UI Tests step used -only-testing:CodeagogoUITests against the scheme's default (Unit) test plan, which doesn't contain that target, so xcodebuild has failed with exit 70 on every run; the formatter pipe hid it until pipefail was enabled. Select the Codeagogo-UI plan (which also keeps the SearchPanelUITests skip), bound the step at 20 minutes in case XCUITest hangs, and select the Unit plan explicitly for the unit step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Settings window is 1060pt tall, taller than the CI runner's screen, so the debug-logging toggle and diagnostics button at the bottom of its scroll view were off-screen and XCUITest failed them as not hittable. Add a scrollIntoView helper to the UI test base class and use it before clicking those controls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SettingsView fixed its frame at 520x1060, so on screens with less visible height (13" laptops, the CI runner) the window ran off the bottom and its last controls were unreachable. Give it a min/ideal/max height instead: ideal is the full 1060pt capped to the main screen's visible height, the scroll view handles overflow, and .windowResizability(.contentSize) lets the user resize between 480pt and 1060pt. Also makes the UI tests' scrollIntoView helper effective for the bottom controls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
macos-14→macos-26. The macos-14 images are deprecated ([macOS] The macOS 14 Sonoma based runner images will begin deprecation on July 6th and will be fully unsupported by November 2nd for GitHub Actions and Azure DevOps actions/runner-images#13518).actions/checkoutv4 → v7,actions/upload-artifactv4 → v7,softprops/action-gh-releasev2 → v3. These are mainly moves to the Node 24 runtime; none of the changes affect how these workflows use them. checkout v6+ stores credentials in a separate file, but the tag and branch push step inrelease.ymlstill works.xcpretty→xcbeautify. xcbeautify ships on the macos-26 image; xcpretty does not.ci.ymlnow setsdefaults.run.shell: bash, so steps run with-eo pipefail. Previously steps ran as plainbash -e, soxcodebuild test | xcprettyreported success whenever the formatter exited 0, even if the build or tests failed.-only-testing:CodeagogoUITestsagainst the scheme's default test plan (Codeagogo-Unit), which doesn't contain that target. xcodebuild failed with exit 70 on every run ("CodeagogoUITests isn't a member of the specified test plan or scheme"), and the formatter pipe hid it. The step now uses-testPlan "Codeagogo-UI", which keeps the existingSearchPanelUITestsskip, and has a 20-minute timeout in case XCUITest hangs. The unit step now names-testPlan "Codeagogo-Unit"explicitly; behaviour is unchanged.--ui-testing. None of them need Accessibility permission. GitHub's macOS runners provide the logged-in desktop session XCUITest needs, with no display.SettingsViewfixed the window at 520×1060pt. On screens with less visible height (the CI runner, or a 13" MacBook Air), the bottom of the window ran off-screen and the debug-logging toggle and diagnostics button couldn't be reached. The window now opens at the full 1060pt where it fits and otherwise at the screen's visible height, the existing scroll view handles overflow, and it can be resized between 480pt and 1060pt (.windowResizability(.contentSize)). CHANGELOG[Unreleased]updated. The UI test base class gains ascrollIntoViewhelper, used before clicking those bottom controls.Result
SearchPanelUITestsis skipped by the test plan, as before). The unit test plan passes too.Heads-up
### Fixedsection under[Unreleased]in CHANGELOG.md, so whichever merges second needs that conflict resolved by keeping both entries.release.ymlonly runs when triggered manually, so it has only had a YAML syntax check. I didn't addpipefailthere, because itscat CHANGELOG.md | head -50line could then fail spuriously.actionlintwasn't available; both workflows only had a YAML syntax check.🤖 Generated with Claude Code