Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a7ff4f2
feat: add CircleCI job for maestro E2E tests
ajpallares Feb 27, 2026
8fcc153
fix: add CircleCI context and narrow sed targeting
ajpallares Feb 27, 2026
c9e5dd8
fix: use e2e-tests context and production App Store API key for iOS m…
ajpallares Mar 25, 2026
887848f
feat: split maestro e2e tests into separate iOS and Android workflows
ajpallares Mar 25, 2026
872de73
feat: pass MAESTRO_STORE env var to maestro tests in Fastlane lanes
ajpallares Mar 25, 2026
8840ef9
fix: use RC_E2E_TEST_API_KEY_PRODUCTION_TEST_STORE for Android maestr…
ajpallares Mar 25, 2026
58ad945
refactor: use test store for all maestro e2e tests (iOS and Android)
ajpallares Mar 30, 2026
0cfb6ac
Add Maestro e2e test jobs to build-test PR workflow
ajpallares Mar 30, 2026
c327b2e
Fix Fastlane path resolution and Android emulator boot timing
ajpallares Mar 30, 2026
f22c317
Use Xcode 26.3 and iPhone 17 simulator for Maestro iOS e2e tests
ajpallares Mar 30, 2026
2e78b30
Fix Cordova Maestro CI: platform add idempotency, Ruby, emulator
ajpallares Mar 30, 2026
f651fae
Fix Cordova iOS: install cocoapods gem for cordova build
ajpallares Mar 30, 2026
fcafbfd
Fix iOS build: use unbundled env for cordova build
ajpallares Mar 30, 2026
28cb8a6
Add error handling to Cordova test app for debugging
ajpallares Mar 30, 2026
3e48e9e
Fix Cordova iOS simulator target and Android Maestro test flow
ajpallares Mar 30, 2026
1cda646
Fix Cordova iOS build and improve Android error diagnostics
ajpallares Mar 30, 2026
6c6c3cf
Fix Cordova iOS build: pass destination override via Cordova CLI
ajpallares Mar 30, 2026
4902c0c
Fix Cordova iOS build: bypass cordova CLI, use xcodebuild directly
ajpallares Mar 30, 2026
2e06190
Fix Cordova Maestro tests: bundle ID mismatch, www copy, and plugin i…
ajpallares Mar 30, 2026
5045681
Fix Cordova Android plugin install: update fetch.json source path
ajpallares Mar 30, 2026
8060b67
Force-track Cordova plugin www/ files that nested .gitignore excluded
ajpallares Mar 31, 2026
f2e96ba
Force-track Cordova runtime files for iOS platform www
ajpallares Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,66 @@ jobs:
name: release
command: bundle exec fastlane release

run-maestro-e2e-tests-ios:
<<: *base-mac-job
macos:
xcode: '26.3.0'
steps:
- checkout
- install-ruby
- revenuecat/install-gem-mac-dependencies:
cache-version: v1
- npm-dependencies
- revenuecat/install-maestro
- run:
name: Boot iOS Simulator
command: |
xcrun simctl boot "iPhone 17" || true
xcrun simctl bootstatus "iPhone 17" -b
- run:
name: Run Maestro E2E Tests (iOS)
command: bundle exec fastlane run_maestro_e2e_tests_ios
no_output_timeout: 15m
- store_test_results:
path: fastlane/test_output
- store_artifacts:
path: fastlane/test_output

run-maestro-e2e-tests-android:
machine:
image: android:2024.11.1
resource_class: xlarge
steps:
- checkout
- run:
name: Install Ruby and Bundler
command: |
rbenv install 3.2.0 --skip-existing
rbenv global 3.2.0
gem install bundler --no-document
bundle install
- npm-dependencies
- run:
name: Build Maestro app (Android)
command: bundle exec fastlane build_maestro_app_android
no_output_timeout: 15m
- android/create-avd:
avd-name: test-e2e
system-image: system-images;android-34;google_apis;x86_64
install: true
- android/start-emulator:
avd-name: test-e2e
post-emulator-launch-assemble-command: ""
- revenuecat/install-maestro
- run:
name: Run Maestro E2E Tests (Android)
command: bundle exec fastlane run_maestro_e2e_tests_android
no_output_timeout: 15m
- store_test_results:
path: fastlane/test_output
- store_artifacts:
path: fastlane/test_output

update-hybrid-common-versions:
description: "Creates a PR updating purchases-hybrid-common to latest release"
<<: *base-mac-job
Expand Down Expand Up @@ -326,6 +386,14 @@ workflows:
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
jobs:
- runtest
- run-maestro-e2e-tests-ios:
context:
- maestro-e2e-tests
- e2e-tests
- run-maestro-e2e-tests-android:
context:
- maestro-e2e-tests
- e2e-tests

deploy:
when:
Expand Down Expand Up @@ -386,6 +454,26 @@ workflows:
- revenuecat/automatic-bump:
ruby_version: "3.2"

maestro-e2e-tests-ios:
when:
or:
- equal: ["maestro_e2e_tests", << pipeline.schedule.name >>]
jobs:
- run-maestro-e2e-tests-ios:
context:
- maestro-e2e-tests
- e2e-tests

maestro-e2e-tests-android:
when:
or:
- equal: ["maestro_e2e_tests", << pipeline.schedule.name >>]
jobs:
- run-maestro-e2e-tests-android:
context:
- maestro-e2e-tests
- e2e-tests

update-hybrid-common-versions:
when:
equal: [ upgrade-hybrid-common, << pipeline.parameters.action >> ]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@
"$(inherited)",
"-ObjC",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.revenuecat.maestro.e2e";
PRODUCT_BUNDLE_IDENTIFIER = "com.revenuecat.automatedsdktests";
PRODUCT_NAME = "MaestroTestApp";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
SUPPORTS_MACCATALYST = YES;
Expand Down Expand Up @@ -563,7 +563,7 @@
"$(inherited)",
"-ObjC",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.revenuecat.maestro.e2e";
PRODUCT_BUNDLE_IDENTIFIER = "com.revenuecat.automatedsdktests";
PRODUCT_NAME = "MaestroTestApp";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
SUPPORTS_MACCATALYST = YES;
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/MaestroTestApp/platforms/ios/App/config.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.revenuecat.maestro.e2e" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="com.revenuecat.automatedsdktests" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<feature name="CDVWebViewEngine">
<param name="ios-package" value="CDVWebViewEngine" />
</feature>
Expand Down
Loading