Repository navigation
ci(swift): run Swift CI on SwiftUI/sample changes and build for the iOS Simulator - #3386
Merged
pinieb merged 2 commits intoOct 22, 2026
Merged
Conversation
The Swift workflow only triggered on swift/core/** (plus shared spec inputs), so SwiftUI-only and sample-only changes never ran A2UISwiftUITests. It also only ran `swift test` on macOS, so the `#if os(iOS)` / UIKit code paths and the sample app were never compiled. - Add swift/swiftui/** and swift/sample/** to the push and pull_request path filters. - Add an ios-build job that builds the A2UISwiftCore-Package scheme for generic/platform=iOS Simulator, and builds the A2UISampleClient app when swift/**, Package.swift or specification/v0_9_1/** change. - Build arm64 only and pass -skipMacroValidation / -skipPackagePluginValidation, which xcodebuild needs for the swift-json-schema macros and the schema generator plugin. Fixes a2ui-project#3385
Contributor
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
Collaborator
|
Hi @karolkulesza, Thank you for raising this PR to fix #3385. We have reviewed and verified the changes. |
pinieb
self-requested a review
October 22, 2026 17:37
pinieb
approved these changes
Oct 22, 2026
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.
Description
The Swift workflow (
swift_build_and_test.yml) had two gaps:swift/core/**and shared spec inputs, so PRs that change onlyswift/swiftui/**orswift/sample/**never ranA2UISwiftUITests.swift teston macOS only, so#if os(iOS)/ UIKit code(e.g.
A2UITextField.swift,A2UIAccessibilityModifier.swift) and the sample app were never compiled.Changes:
swift/swiftui/**andswift/sample/**to thepushandpull_requestpath filters.ios-buildjob onmacos-latest:xcodebuild build -scheme A2UISwiftCore-Package -destination 'generic/platform=iOS Simulator'(all four library products), always.
xcodebuild build -project swift/sample/A2UISampleClient.xcodeproj -scheme A2UISampleClientfor the same destination with
CODE_SIGNING_ALLOWED=NO, only whenswift/**,Package.swift,specification/v0_9_1/**or the workflow changes (viadorny/paths-filter, same pin asweb_ci.yml),or on manual dispatch.
ARCHS=arm64to avoid building the simulator slice twice;-skipMacroValidationand-skipPackagePluginValidationare required because the package uses swift-json-schema macros and abuild-tool plugin.
testjob and the workflow name are unchanged.CI cost: one extra macOS job.
xcodebuildbuilds swift-syntax from source, which is most of the time.Locally (Xcode 26.3, Apple Silicon, busy machine) the package build took ~4.5 min and the sample build
~2 min from a clean DerivedData. If you'd rather pay for one build only, building just the sample covers
the same library targets; happy to switch.
Verified locally: both
xcodebuildcommands, exactly as in the workflow, end inBUILD SUCCEEDEDoncurrent
main, so the new job should be green as is.#3376 also edits this workflow: it adds a separate
performancejob next to the newios-buildjob. Whichever lands second will need a small, mechanical conflict resolution in that file.Fixes #3385
Pre-launch Checklist
One time:
For this PR:
If you need help, consider asking for advice on the discussion board.