Add XCFramework build script and publish release workflow#838
Merged
Conversation
🤖 Augment PR SummarySummary: Adds automation for producing and publishing OpenSwiftUI XCFramework artifacts, while tightening module interfaces for XCFramework consumers. Changes:
Technical Notes: The build path uses 🤖 Was this summary useful? React with 👍 or 👎 |
5af537d to
7b8dc7f
Compare
xcodebuild builds macro targets for the target SDK platform instead of the host platform, causing "malformed response" errors on non-macOS SDKs. Expand @entry macro inline under OPENSWIFTUI_XCFRAMEWORK_BUILD flag.
- Zip each xcframework individually with per-framework checksums - On tag push: create GitHub release with all zips and .binaryTarget entries - On manual trigger: output to step summary and upload as artifacts - Remove zip step from build_xcframework.sh (handled by workflow)
68888ff to
7ee2e49
Compare
7ee2e49 to
c75eb64
Compare
831f64f to
c7a487d
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #838 +/- ##
==========================================
- Coverage 27.01% 26.93% -0.08%
==========================================
Files 666 671 +5
Lines 42826 43332 +506
==========================================
+ Hits 11568 11671 +103
- Misses 31258 31661 +403 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Replace BASH_SOURCE[0] with zsh-native ${0:a:h}
- Use shell: zsh in workflow to match script shebang
e09f383 to
3ff690f
Compare
- Add contents: write permission for creating releases - Fix tag name interpolation in release body URLs - Simplify body generation using multiline strings
Use printf for multiline ENTRY to avoid breaking YAML block scalar.
- Extract common build logic into .github/actions/build-xcframework - release.yml: triggered by version tags, creates GitHub release - build_xcframework.yml: manual trigger, uploads artifacts
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
Scripts/build_xcframework.shfor building xcframeworks directly from Package.swift viaxcodebuild archive+xcodebuild -create-xcframeworkpublish_release.ymlGitHub Actions workflow triggered on release tags and manual dispatchClose #836
Build Script
--sdk,--archs, and--debugCLI optionsOpenSwiftUI.xcframeworkplus stub xcframeworks for dependency modules (OpenSwiftUICore,OpenAttributeGraphShims,OpenCoreGraphicsShims,OpenObservation,OpenQuartzCoreShims,OpenRenderBoxShims)macosxandiphonesimulator. iphoneos support blocked by AG issue (Add iOS device support for OpenSwiftUI #835)Fixes
OpenAttributeGraphShimsimport leak in swiftinterface (@_spiOnly)OpenSwiftUI_SPIdepending onOpenRenderBoxinstead ofOpenRenderBoxShimsUIFoundation_Privateimport withOPENSWIFTUI_XCFRAMEWORK_BUILDPreviewShimsopaque return types for library evolutionNever+ViewBody typealias for swiftinterface rebuildTest Plan
bash Scripts/build_xcframework.sh OpenSwiftUI