Repository navigation
Disable automated CI triggers; run iOS Maestro E2E on Linux via sim-remote - #1
Merged
Merged
Conversation
This fork does not need upstream's CI automation. Replace all push, pull_request, schedule, issue, and release triggers with workflow_dispatch so nothing runs automatically; reusable workflow_call workflows are left untouched.
Move the iOS E2E test jobs from macOS runners to ubuntu-latest, driving a remote fleet simulator through sim-remote's Maestro shims (install-shims). The maestro-ios action now installs libplist-utils (plutil shim), downloads sim-remote from the softu release, logs in to acquire a machine, and releases it when done. The runner script passes explicit UDIDs and opens a reverse tunnel for Metro in Debug. e2e-ios-templateapp is split into a macOS build job that uploads the .app and a Linux test job that runs Maestro against it.
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:
Two infrastructure changes for this fork:
1. Remove automated workflow triggers. This fork doesn't need upstream's CI automation. All
push,pull_request/pull_request_target,schedule,issues/issue_comment, andreleasetriggers are replaced withworkflow_dispatch, so nothing runs automatically but every workflow can still be run by hand. Reusableworkflow_callworkflows (only runnable from a dispatched workflow) are untouched.2. Run the iOS Maestro E2E tests on Linux against remote simulators. The E2E jobs move from macOS runners to
ubuntu-latest, driving a remote fleet simulator throughsim-remote(softu release, which includes the Maestro shims from software-mansion/radon-cloud#143):.github/actions/maestro-ios: installslibplist-utils(backs theplutilshim), downloads the arch-matchedsim-remotebinary,sim-remote loginto acquire a fleet machine (with a guard so an unsetSIM_ROUTER_URLsecret doesn't override the baked-in router URL),eval "$(sim-remote install-shims)"before running Maestro, andsim-remote logoutonalways().maestro-ios.js: uses explicit UDIDs instead of thebootedalias (which only resolves locally), opens asim-remote reverse start <udid> 8081tunnel in Debug so the app in the remote simulator can reach the runner-local Metro, and falls back from "iPhone … Pro" to any iPhone when picking a device.e2e-ios-rntester.yml: test job moves toubuntu-latest(the .app is built upstream and downloaded as an artifact).e2e-ios-templateapp.yml: split into a macOSbuildjob (init project, pod install, xcodebuild, upload .app artifact) and a Linuxtestjob (download .app, re-init the project JS-only for Metro in Debug, run Maestro).Reviewer notes:
SIM_ROUTER_USERNAME/SIM_ROUTER_API_KEYrepo secrets (SIM_ROUTER_URLoptional — a default is baked into the binary).test-all.yml) acquires its own fleet machine; queueing is bounded by the 900 s login timeout.Changelog:
[INTERNAL] [CHANGED] - Disable automated CI triggers on this fork and run iOS Maestro E2E on Linux runners via sim-remote
Test Plan:
python3 -c "yaml.safe_load(...)"over every touched workflow/action file — all parse.node --check .github/workflow-scripts/maestro-ios.js— passes. (ESLint not run: no node_modules in the worktree.)softusim-remotebinary with the exact commands the action uses; verifiedinstall-shims,login,logout,reverse start <UDID> <PORT>, andsimctlpassthrough all exist;eval "$(sim-remote install-shims)"puts all six shims (xcrun,xcodebuild,plutil,applesimutils,open,xcode-select) on PATH and exportsSIM_REMOTE_BIN;plistutilis provided bylibplist-utils.