2727 SDK_PACK_DIR : /tmp/clerk-expo-pack
2828 E2E_INSTANCE_NAME : clerkstage-with-native-components
2929 BAPI_URL : https://api.clerkstage.dev
30- MAESTRO_VERSION : ' 2.6.1 '
30+ MAESTRO_RUNNER_VERSION : ' 1.1.21 '
3131
3232jobs :
3333 native-build :
@@ -214,34 +214,33 @@ jobs:
214214 path : ${{ steps.native-build-key.outputs.artifact }}
215215 key : ${{ steps.native-build-cache.outputs.cache-primary-key }}
216216
217- - name : Cache Maestro
217+ - name : Cache maestro-runner
218218 if : steps.keys.outputs.pk != ''
219219 uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
220220 with :
221- path : ~/.maestro
222- key : maestro-${{ runner.os }}-${{ env.MAESTRO_VERSION }}
221+ path : ~/.maestro-runner
222+ key : maestro-runner- ${{ runner.os }}-${{ runner.arch }}-${{ env.MAESTRO_RUNNER_VERSION }}
223223
224- - name : Install Maestro
224+ - name : Install maestro-runner
225225 if : steps.keys.outputs.pk != ''
226- # pipefail + binary check so a curl flake doesn't leave a missing
227- # binary that only surfaces later as exit-code-127.
228226 run : |
229227 set -o pipefail
230- if [ -x "$HOME/.maestro/bin/maestro" ]; then
231- echo "Using cached Maestro "
228+ if [ -x "$HOME/.maestro-runner /bin/maestro-runner " ]; then
229+ echo "Using cached maestro-runner "
232230 else
233231 installed=0
234232 for i in 1 2 3; do
235- if curl -fLs --retry 3 --retry-delay 5 "https://get.maestro.mobile.dev" | MAESTRO_VERSION="$MAESTRO_VERSION" bash; then
236- if [ -x "$HOME/.maestro/bin/maestro" ]; then installed=1; break; fi
233+ if curl -fsSL --retry 3 --retry-delay 5 "https://open.devicelab.dev/install/maestro-runner" |
234+ bash -s -- --version "$MAESTRO_RUNNER_VERSION"; then
235+ if [ -x "$HOME/.maestro-runner/bin/maestro-runner" ]; then installed=1; break; fi
237236 fi
238- echo "Maestro install attempt $i failed (or binary missing); retrying"
237+ echo "maestro-runner install attempt $i failed (or binary missing); retrying"
239238 sleep 5
240239 done
241- [ "$installed" = 1 ] || { echo "::error::Maestro install failed after 3 attempts"; exit 1; }
240+ [ "$installed" = 1 ] || { echo "::error::maestro-runner install failed after 3 attempts"; exit 1; }
242241 fi
243- echo "$HOME/.maestro/bin" >> "$GITHUB_PATH"
244- "$HOME/.maestro/bin/maestro" --version
242+ echo "$HOME/.maestro-runner /bin" >> "$GITHUB_PATH"
243+ "$HOME/.maestro-runner /bin/maestro-runner " --version
245244
246245 - name : Boot iOS simulator
247246 id : sim
@@ -289,6 +288,9 @@ jobs:
289288 env :
290289 CLERK_TEST_EMAIL : ${{ steps.user.outputs.email }}
291290 CLERK_TEST_PASSWORD : ${{ steps.user.outputs.password }}
291+ MAESTRO_DEVICE : ${{ steps.sim.outputs.udid }}
292+ MAESTRO_DRIVER : wda
293+ MAESTRO_PLATFORM : ios
292294 SIM_UDID : ${{ steps.sim.outputs.udid }}
293295 run : |
294296 echo "Using simulator $SIM_UDID"
@@ -352,6 +354,8 @@ jobs:
352354 env :
353355 CLERK_TEST_EMAIL : ${{ steps.user.outputs.email }}
354356 CLERK_TEST_PASSWORD : ${{ steps.user.outputs.password }}
357+ MAESTRO_DRIVER : devicelab
358+ MAESTRO_PLATFORM : android
355359 with :
356360 api-level : 34
357361 target : google_apis
@@ -377,9 +381,9 @@ jobs:
377381 curl -fsS -X DELETE "$BAPI_URL/v1/users/$USER_ID" \
378382 -H "Authorization: Bearer $CLERK_SECRET_KEY" || true
379383
380- # Maestro debug files record flow env (and typed input) in plaintext;
384+ # Test reports record flow env (and typed input) in plaintext;
381385 # add-mask only covers step logs, not artifact contents.
382- - name : Scrub test credentials from Maestro debug output
386+ - name : Scrub test credentials from maestro-runner reports
383387 if : always() && (steps.run_e2e_ios.outcome == 'failure' || steps.run_e2e_android.outcome == 'failure')
384388 env :
385389 CLERK_TEST_PASSWORD : ${{ steps.user.outputs.password }}
@@ -388,10 +392,10 @@ jobs:
388392 [ -n "$CLERK_TEST_PASSWORD" ] || exit 0
389393 # shellcheck disable=SC2016
390394 find "$RUNNER_TEMP/maestro-debug" -type f \
391- \( -name '*.json' -o -name '*.log' -o -name '*.txt' -o -name '*.yaml' \) \
395+ \( -name '*.html' -o -name '*. json' -o -name '*.log' -o -name '*.txt' -o -name '*.xml ' -o -name '*.yaml' \) \
392396 -exec perl -pi -e 's/\Q$ENV{CLERK_TEST_PASSWORD}\E/[REDACTED]/g' {} +
393397
394- - name : Upload Maestro artifacts on e2e failure
398+ - name : Upload maestro-runner artifacts on e2e failure
395399 if : always() && (steps.run_e2e_ios.outcome == 'failure' || steps.run_e2e_android.outcome == 'failure')
396400 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
397401 with :
0 commit comments