Skip to content

ci: build SwiftPM test app with packaged SDKs - #1997

Draft
ajpallares wants to merge 3 commits into
pallares/spm-package-manifestsfrom
codex/spm-app-ci
Draft

ajpallares wants to merge 3 commits into
pallares/spm-package-manifestsfrom
codex/spm-app-ci

Conversation

@ajpallares

@ajpallares ajpallares commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

The current CI checks the SwiftPM manifests without building a consuming app, so packaging, compilation, and native linking regressions can pass unnoticed. Add a required spm_ios job that builds the checked-in e2e-tests/SPMTestApp with both freshly packed SDKs.

Stacked on #1907; targets pallares/spm-package-manifests.

  • Check in a minimal React Native 0.88 RC3 iOS app with an SPM-configured Xcode project and an npm lockfile for React Native and tooling. Install the SDK tarballs separately so each commit tests the actual package contents.
  • Pin CLI 21.0.0-alpha.1 only in this standalone app so it discovers the SPM project without a Podfile. The root Yarn workspace and all other apps retain their existing dependencies.
  • Keep installation, SPM preparation, and builds directly in CircleCI. Build Debug and Release, require JavaScript bundles, and verify all six SDK bridge/view-manager classes in the app binaries.
  • Trigger an autolinking resync and rebuild Debug, checking that the SDK symlinks survive. Cache downloads, save build logs/symbols/Xcode results, and require the job before release tagging alongside the existing CocoaPods build.

Validation: ran the exact CircleCI job commands locally on Xcode 26.6. All three ARM64 simulator builds, JavaScript bundles, native linking checks, and resync assertions passed; installation left the app lockfile unchanged. CircleCI configuration validation, shell syntax, and diff checks passed.

@ajpallares
ajpallares requested a review from a team as a code owner October 6, 2026 10:05
@ajpallares ajpallares added the pr:other A code change that improves performance label Oct 6, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a159e3a. Configure here.

Comment thread .circleci/config.yml
- ~/Library/Caches/ReactNative/spm-artifacts
- ~/Library/Caches/org.swift.swiftpm
- store_artifacts:
path: build/spm-ci

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Failed builds drop diagnostic artifacts

Low Severity

store_artifacts runs only after a successful build-spm-app.sh step, so logs, symbols, and xcresult bundles in build/spm-ci are discarded when the SwiftPM build fails—the case those artifacts are meant to diagnose.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit a159e3a. Configure here.

@ajpallares
ajpallares marked this pull request as draft October 6, 2026 10:14
@ajpallares ajpallares changed the title ci: build packaged SDKs in a SwiftPM app ci: build SwiftPM test app with packaged SDKs Oct 6, 2026
@RevenueCat-Danger-Bot

RevenueCat-Danger-Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
1 Error
🚫 This PR increases the size of the repo by more than 250.00 KB (increased by 304.50 KB).
1 Message
📖 You can bypass the size check failure by adding the label "danger-bypass-size-limit". Please exercise caution.

Generated by 🚫 Danger

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:other A code change that improves performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants