Repository navigation
[build-tools] Install ffmpeg before starting Appium sessions - #4577
Conversation
0148de6 to
61d4f29
Compare
Appium's startRecordingScreen runs ffmpeg on the worker. The macOS session image does not ship it, and #4549 removed the only install that iOS sessions ran, so XCUITest recording fails with "'ffmpeg' binary is not found in PATH". Install ffmpeg concurrently with Appium, and wait for both installs before the step continues.
61d4f29 to
6505565
Compare
|
✅ Thank you for adding the changelog entry! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4577 +/- ##
==========================================
+ Coverage 73.87% 73.87% +0.01%
==========================================
Files 1007 1007
Lines 49228 49230 +2
Branches 10633 10633
==========================================
+ Hits 36363 36365 +2
Misses 11873 11873
Partials 992 992 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Looks good. Should we add |
It was taking ~11secs last week when we had it. xcode 27.1 image already has it so it should run within 1 second max, will make sure to confirm it after deployment and post it here. Thanks for the quick review 🙏 |
|
probe (so we can see latencies better) https://expo.dev/accounts/gwdp/projects/coin-flip/workflows/01a11db8-e193-77d7-95d1-4df28f1b6a93 |
|
android probe (so we can see latencies better) https://expo.dev/accounts/gwdp/projects/coin-flip/workflows/01a11dc2-97e4-7835-9c93-bd04c7711049 |
Why
On iOS,
startRecordingScreenfails in hosted Appium sessions with'ffmpeg' binary is not found in PATH. XCUITest records the simulator with ffmpeg from the Appium server'sPATH. The default iOS session image (macos-tahoe-26.5-xcode-26.6) does not include ffmpeg.macOS sessions installed ffmpeg for session previews from #4398 until #4549 moved previews to
cwebp. Appium recording relied on that install, so recording on iOS stopped working.How
eas/start_appium_remote_sessionruns the existing best-effort ffmpeg install (Homebrew on macOS, apt on Linux) at the same time as the Appium install, on both platforms. UiAutomator2 also uses ffmpeg, to merge long recordings.Not in this PR: ffmpeg in the default macOS session image. The
macos-tahoe-26.6-xcode-27.1image already has it.LLM Authorship
Test Plan
startRecordingScreenreturned 500 with'ffmpeg' binary is not found in PATH.macos-tahoe-26.5-xcode-26.6(also the macOSlatestimage): no ffmpeg in/opt/homebrew/binor/usr/local/bin./opt/homebrew/binis on the stepPATH.brew install ffmpegtook 10.4 s next to theappium@^3and xcuitest install (12.5 s). XCUITeststartRecordingScreenandstopRecordingScreenthen returned a 4.97 MB MP4. This ran the same commands directly, not this build of build-tools.build-toolsunit tests insrc/steps: 1333 passed. New tests check that Appium starts only after the ffmpeg install settles (installed or failed), and that an Appium install error waits for it. All three fail onmain.tsc,oxlint, andoxfmtare clean.Generated with T3 Code, using Claude Code.