Add xcframework-build-smoke CI job#6715
Conversation
Adds a lightweight CI job that builds the xcodeproj-driven `RevenueCatUIDev` scheme for iOS in distribution mode with `RC_XCFRAMEWORK` set, mirroring the configuration of `create_xcframework` without the cost of archiving and codesigning. Catches problems that previously only surfaced in `release_checks`, such as Swift files added to SPM/Tuist sources but not registered in `RevenueCat.xcodeproj`, or symbols guarded by `RC_XCFRAMEWORK`. The job runs in the reduced suite on every PR push and in `release-or-main`, and is required for `all-tests-succeeded`. Made-with: Cursor
Adds the new job to the on-demand allowlist so it can be triggered via the `please test` GitHub bot path alongside the other CI jobs. Made-with: Cursor
|
@RCGitBot please test xcframework-build-smoke |
|
🚀 Triggered xcframework-build-smoke → Pipeline #37245 |
…)" This reverts commit 0dbac51.
|
@RCGitBot please test xcframework-build-smoke |
|
🚀 Triggered xcframework-build-smoke → Pipeline #37247 |
)" This reverts commit ef64763.
| # or symbols guarded by `RC_XCFRAMEWORK`) without paying the cost of the full | ||
| # `release_checks` lane. | ||
| desc "Smoke build of the xcframework code path (RevenueCatUIDev, iOS, distribution)" | ||
| lane :build_xcframework_smoke do |options| |
There was a problem hiding this comment.
Could we reuse (part of the) export_xcframework lane here?
There was a problem hiding this comment.
Hmm I see the point. But export_xcframework/create_xcframework archive + codesign + zip per platform is exactly the cost we wanted to skip here. A shared helper would mean refactoring build_release to accept extra xcargs, which feels out of scope?
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ 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 361ed9c. Configure here.
Addresses review feedback: - Move the job from the reduced suite to the full suite (gated on `approve-full-tests`) so it runs alongside the other build tests. - Add it to `all-tasks-passed.requires` so a smoke failure actually blocks PR merge (the previous wiring left the summary gate green). - Reorder its placement in the `release-or-main` workflow and `all-tests-succeeded.requires` next to `api-tests` for consistency. Made-with: Cursor
|
Closing in favour of #6716, which addresses this failure mode much more cheaply by promoting the existing Dangerfile warning to a failure. The Danger check already detects Swift files that are added on disk but not registered in |

Motivation
Errors that only manifest in the xcframework code path (e.g. #6713: a Swift file added to SPM/Tuist sources but not registered in
RevenueCat.xcodeproj) currently go undetected until the heavyrelease_checkslane runs onrelease/*branches. We can catch the same class of failures on every PR with a much smaller job.Description
Adds a lightweight CI job,
xcframework-build-smoke, that builds the xcodeproj-drivenRevenueCatUIDevscheme for iOS in distribution mode with theRC_XCFRAMEWORKcompilation condition, mirroringcreate_xcframework's configuration without archiving or codesigning.build_xcframework_smoke(compile-only, ~1–2 min on top of dependency setup).run-all-tests) so it runs on every PR push,release-or-mainworkflow,all-tests-succeeded.requiresso it's a required gate for tagging,.circleci/generate-requested-jobs-config.js.Verification
Verified that the new job catches the original failure mode by temporarily reverting the fix from #6713 on this branch. The smoke job failed as expected with the same
cannot infer key path type from contexterrors we saw inrelease-checks: https://app.circleci.com/pipelines/github/RevenueCat/purchases-ios/37247/workflows/d670cc34-a07a-4863-9942-85060e0d18cb/jobs/552259. The temporary revert has since been reapplied so the branch builds clean.Note
Low Risk
CI-only changes that add an extra build step and gating; primary risk is increased pipeline time or unexpected build failures due to the new compile configuration.
Overview
Adds a lightweight
xcframework-build-smokeCI job to compile the xcframework build configuration (iOSRevenueCatUIDevin distribution mode withRC_XCFRAMEWORK) on PRs.Introduces a new Fastlane lane
build_xcframework_smokeand wires the job into bothrun-all-testsandrelease-or-mainworkflows (including required-gate lists), and allows it to be triggered via the on-demand requested-jobs allowlist.Reviewed by Cursor Bugbot for commit 099d1e5. Bugbot is set up for automated code reviews on this repo. Configure here.