Repository navigation
ci: automate RN SDK release - #214
Merged
Merged
Conversation
…ws, iOS from SPM) - native-sdk-bump.yml: native release events open one pin PR per SDK into development - release-please on staging (rc + rc-debug to GitHub Packages) and production (npm via publish.yml, debug to GitHub Packages, backmerge) - preview.yml: publish any branch to GitHub Packages, optional native versions - pin guard blocks prerelease native pins from npm - iOS SDKs vendored from SPM releases instead of CocoaPods trunk - PR checks, staging promotion PR, Android compile check - drop release-it/standard-version; prod -> staging/production in lint and sonar
This was referenced Oct 16, 2026
- release-please and npm publish on main; drop staging/production channels, staging promotion and backmerge - native production releases open a pin PR into main; native staging releases only push a native-sdk/staging/<platform>-<sdk>/<X.Y.Z> branch - pin guard on every PR into main - preview can use the debug native pins
- native release events carry every SDK and variant of the release - staging -> prerelease/<platform>-<sdk>-<version>[_...], native preview -> preview/<platform>-..., production -> one PR per platform into main - manual Preview with native versions pushes preview/<ios-...>__<android-...> - apply-native-pins.sh --debug writes native-sdk-debug.json
- each event pins the release and the debug variant on separate branches named after their versions; production debug builds go to prerelease/ - remove native-sdk-debug.json, apply-native-pins --debug, the X.Y.Z-debug package and the preview debug flag
Contributor
|
iOS sample build fails on my Xcode setup (26.3), both default and static linkage. Working on a fix; will post it here by mid-day once confirmed locally. |
SmallcaseGatewayModule imports Gson, but SDKs from the new pipeline no longer expose it at compile scope. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
|
Fix for the iOS build: s.source_files = "ios/*.{h,m,mm,swift}"Verified locally on 70993ef: sample app builds with default and static linkage, |
ios/** also matched xcframework headers under ios/Frameworks, which then compiled as our sources and broke the build. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Author
|
Done in 0338ed1: podspec |
isouravganguly
approved these changes
Oct 27, 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.
Summary
Release CI for the RN SDK, adapted to trunk-based development on
main. Based on the React Native SDK release CI plan; that doc still describes thedevelopment/staging/productionmodel.native-sdk:marker lines inandroid/build.gradleand the podspec (IOS_SDKS).scripts/apply-native-pins.shis the only writer.native-sdk-bump.yml: onenative-sdk-releasedevent per native release, carrying every SDK and variant it released ({platform, channel, pins: {scg: {release, debug}, loans: {...}}, source_url}), or run by hand. The release and the debug variant each get their own branch frommain, named after their versions:prerelease/<platform>-<sdk>-<version>[_<sdk>-<version>], e.g.prerelease/ios-scg-7.3.1-rc.1645_loans-7.6.1-rc.1650andprerelease/ios-scg-7.3.1-rc-debug.1644_loans-7.6.1-rc-debug.1649.preview/<platform>-<sdk>-<version>[...].main(release/<platform>), so scg + loans from a shared-module change merge together; debug builds on aprerelease/branch.publish.yml(name kept for npm OIDC): release-please onmain. Merging the release PR runs pin guard →npm publish. No manual publish any more.preview.yml: publishes any branch asX.Y.Z-preview.<run>to GitHub Packages. With native versions as inputs it first pushespreview/<ios-...>__<android-...>(e.g.preview/ios-scg-7.3.1-rc.1645__android-loans-5.5.0-rc-debug.2). Inputs can be release or debug builds.scripts/fetch-ios-sdks.shvendors the XCFrameworks (checksum-verified) intoios/Frameworksonprepack. The podspec dropss.dependency 'SCGateway'/'SCLoans'. Loans is pinned at7.6.0.pr-checks.ymlon PRs intomain: ClickUp link, Conventional Commit title, pin guard, Android compile of the sample app.Conflicting setup removed or changed
publish.ymlworkflow_dispatch(npm publish from any branch) → removed.release-it,standard-version(also a runtimedependency!), therelease*scripts → removed;yarn.lockpruned.lint.yml/sonar-scan.yaml:prod/development→main.ClickUp
No task linked
Test Plan
scripts/fetch-ios-sdks.sh: SCGateway7.3.0, Loans7.6.0(public), and an internal Loans rc; checksums OKnpm pack --dry-run: shipsios/Frameworkspod install: SCGateway/SCLoans pods removed fromPodfile.lockactionlint,prettier --checkfmtpod fails on Xcode 26.6 (RN 0.79 consteval issue, not from this change)native-sdk-bump.ymlandpreview.ymlby handNotes
Before merging
maindoes not exist yet. Create it fromprod(ad653f2, v7.7.3), make it the default branch (repository_dispatchand the bump workflow read from the default branch), add it to the branch ruleset, and retarget this PR tomain. release-pleasebootstrap-sha=ad653f2, manifest at7.7.3.case-ci-release-appmust be able to read the four iOS SPM repos (the token is minted withowner: smallcase).Not in this PR: dispatch senders in
gw-mob-android/gw-mob-ios(one event per release, after all its builds are published; native preview builds send too); retiringdevelopment,staging,production,prod; theread:packagestoken for internal apps.🤖 Generated with Claude Code