Commit c9b87ae
ci(example): add iOS TestFlight publish job alongside Android
Restructures the example app publish workflow as a single workflow with
two parallel jobs (deploy-android, deploy-ios) sharing triggers and
shared composite actions. Both ship together on workflow_dispatch and
on every SDK release.
iOS job mirrors the iOS test app's TestFlight workflow
(klaviyo-ios-test-app/.github/workflows/testflight.yml):
- Ephemeral keychain with Apple Distribution cert
- Per-target Manual signing via xcodeproj Ruby gem (Modern Xcode ignores
CLI signing flags)
- ExportOptions.plist with provisioning profile UUIDs patched in at
build time via PlistBuddy
- xcrun altool upload with retry-on-collision (handles manual TestFlight
uploads racing past github.run_number)
- agvtool sets the build number across all targets per run
RN-specific additions on top:
- Node + Yarn setup before pod install (Metro bundler runs during archive)
- bundle exec pod install --repo-update (no stale CDN pinning)
- Delete .xcode.env.local so Xcode build phase resolves node via $PATH
- GoogleService-Info.plist injected from a base64 secret (versus Android's
plain-text google-services.json) so Firebase push works in the build
Shared between jobs via composite actions:
- .github/actions/example-publish-prep — verifies KLAVIYO_EXAMPLE_API_KEY
and writes example/.env
- .github/actions/notify-slack-publish — single notification action with
result + platform inputs, replacing four duplicated payload blocks
example/ios/ExportOptions.plist is checked in with a GH_actions UUID
placeholder; CI overwrites it with the real UUID per run.
Part of MAGE-464
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 86adfd6 commit c9b87ae
4 files changed
Lines changed: 337 additions & 66 deletions
File tree
- .github
- actions
- example-publish-prep
- notify-slack-publish
- workflows
- example/ios
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
0 commit comments