Skip to content

[build-tools] Add Appium remote simulator sessions - #4189

Open
sjchmiela wants to merge 1 commit into
mainfrom
stanley/appium-remote-session-action
Open

[build-tools] Add Appium remote simulator sessions#4189
sjchmiela wants to merge 1 commit into
mainfrom
stanley/appium-remote-session-action

Conversation

@sjchmiela

@sjchmiela sjchmiela commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Why

Appium is one of the industry standards when it comes to interacting with local and remote mobile devices. I think it may be nice to add support for it to EAS Simulator.

How

Added a new EAS function that installs Appium v3, necessary plugin, starts it and exposes its endpoint through ngrok.

The event collection is a bit wonky since we're repeatedly calling Appium endpoint for events, but maybe it's ok. Alternatively we could extend session event collection mechanism to support getEventsAsync, but decided not to do that (see diff).

Test Plan

Tested manually locally. A remote test is going to be better!

@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 61.37566% with 73 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.34%. Comparing base (067c0e5) to head (70eed8a).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...ls/src/steps/functions/startAppiumRemoteSession.ts 38.39% 61 Missing ⚠️
...ckages/build-tools/src/steps/utils/appiumEvents.ts 86.52% 12 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4189      +/-   ##
==========================================
+ Coverage   63.32%   63.34%   +0.02%     
==========================================
  Files        1025     1028       +3     
  Lines       46786    47017     +231     
  Branches     9865     9853      -12     
==========================================
+ Hits        29624    29778     +154     
- Misses      15707    17137    +1430     
+ Partials     1455      102    -1353     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sjchmiela
sjchmiela force-pushed the stanley/appium-remote-session-action branch 3 times, most recently from 8c1e165 to 25c685b Compare August 14, 2026 10:59
@sjchmiela
sjchmiela force-pushed the stanley/appium-remote-session-action branch from 25c685b to 70eed8a Compare August 14, 2026 11:15
@sjchmiela sjchmiela added the no changelog PR that doesn't require a changelog entry label Aug 14, 2026
@github-actions

Copy link
Copy Markdown

⏩ The changelog entry check has been skipped since the "no changelog" label is present.

@sjchmiela
sjchmiela marked this pull request as ready for review August 14, 2026 12:40
@sjchmiela
sjchmiela requested a review from szdziedzic August 14, 2026 12:40
observedCommandKeys: Set<string>;
logger: bunyan;
}): Promise<void> {
const response = await turtleFetch(new URL('sessions', appiumUrl).toString(), 'GET', {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appium 3 removed the GET /sessions endpoint. Session discovery now requires GET /appium/sessions, with the server launched using --allow-insecure=*:session_discovery.

As written, every event-collection poll will fail, so no Appium events are uploaded. When max_idle_time_minutes is configured, an actively used session may also be treated as idle and stopped.

Could we update both the endpoint and the Appium launch arguments, and add test assertions for them?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no changelog PR that doesn't require a changelog entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants