ci: [SDK-4717] add iOS E2E workflow with signing#1664
Merged
Conversation
2ad0d96 to
574e695
Compare
- Pin checkout, cache, and upload-artifact to v4 so the workflow resolves on GitHub Actions (v6/v5/v7 do not exist). - Write Secrets.plist via plistlib with env vars instead of an unquoted heredoc, avoiding bash expansion and XML escaping issues. Co-authored-by: Cursor <cursoragent@cursor.com>
Pin checkout@v6, cache@v5, and upload-artifact@v7 to match the other OneSignal SDK E2E workflows (Capacitor, Cordova, Unity). Co-authored-by: Cursor <cursoragent@cursor.com>
nan-li
approved these changes
May 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.
Description
One Line Summary
Add a CI workflow that builds a signed iOS demo IPA and runs the shared Appium E2E suite on real devices.
Details
Motivation
The iOS demo now matches the cross-SDK demo spec, but there was no automated path to build a device-signed IPA and run the shared Appium tests in CI. This PR wires up that pipeline so iOS gets the same E2E coverage as the other SDK demos.
Scope
.github/workflows/e2e.ymlwith two jobs:build-ios: checks out the repo, runs the new setup action, installs Appium signing certs/profiles viasdk-shared, archives and exports a signed IPA, verifiesaps-environmentis present, and uploads the artifact.e2e-ios: reusesOneSignal/sdk-shared/.github/workflows/appium-e2e.yml@mainwith the uploaded IPA..github/actions/setup-democomposite action to install XcodeGen, generateexamples/demo/App.xcodeproj, and writeApp/Secrets.plistfrom CI secrets.examples/demo/ExportOptions.plistfor manual development export with the Appium provisioning profiles (main app, NSE, Live Activity widget).examples/demo/project.ymlwith Release manual signing settings per target soxcodebuild archivecan produce a device-signed build in CI.Does not change SDK source or demo app behavior. Workflow triggers on
rel/**pushes andworkflow_dispatch.Other
Requires these repo secrets/vars (same as other SDK E2E workflows):
vars.APPIUM_ONESIGNAL_APP_IDsecrets.APPIUM_ONESIGNAL_API_KEYsecrets.APPIUM_IOS_DEV_CERT_P12_BASE64secrets.APPIUM_IOS_DEV_CERT_PASSWORDsecrets.APPIUM_APP_STORE_CONNECT_KEY_IDsecrets.APPIUM_APP_STORE_CONNECT_ISSUER_IDsecrets.APPIUM_APP_STORE_CONNECT_PRIVATE_KEYTesting
Manual testing
Not run locally in this PR. The workflow is intended to be validated on the first CI run after merge (or via
workflow_dispatchon this branch).Affected code checklist
None of the SDK runtime code paths below were touched. Changes are CI and demo signing config only.
Checklist
Overview
Testing
Final pass
Made with Cursor