diff --git a/.github/workflows/nightly-e2e.yml b/.github/workflows/nightly-e2e.yml index ae9d1c30a9..df833779af 100644 --- a/.github/workflows/nightly-e2e.yml +++ b/.github/workflows/nightly-e2e.yml @@ -15,7 +15,7 @@ concurrency: env: CI: "1" - MAESTRO_VERSION: "2.6.1" + MAESTRO_VERSION: "2.10.0" MAESTRO_DRIVER_STARTUP_TIMEOUT: "180000" MAESTRO_CLI_NO_ANALYTICS: "1" MAESTRO_CLI_ANALYSIS_NOTIFICATION_DISABLED: "true" @@ -62,12 +62,12 @@ jobs: - name: 🔤 Compile translations uses: ./.github/actions/compile-i18n - - name: 📥 Install Maestro 2.6.1 + - name: 📥 Install Maestro 2.10.0 run: | echo "Installing Maestro" > artifacts/ios/phase.txt curl -fsSL -o "$RUNNER_TEMP/maestro.zip" \ "https://github.com/mobile-dev-inc/Maestro/releases/download/cli-${MAESTRO_VERSION}/maestro.zip" - echo "3440825f514f537c6a96bcf5de995780c2a4a7f83a43208fdc95d4f1fecfad3b $RUNNER_TEMP/maestro.zip" \ + echo "29b675e10cc12080e445e9bfb2e2b4e4dfb9c0f2e30d5884120d258b5e1cd991 $RUNNER_TEMP/maestro.zip" \ | shasum -a 256 --check unzip -q "$RUNNER_TEMP/maestro.zip" -d "$RUNNER_TEMP" echo "$RUNNER_TEMP/maestro/bin" >> "$GITHUB_PATH" @@ -187,12 +187,12 @@ jobs: - name: 🔤 Compile translations uses: ./.github/actions/compile-i18n - - name: 📥 Install Maestro 2.6.1 + - name: 📥 Install Maestro 2.10.0 run: | echo "Installing Maestro" > artifacts/android/phase.txt curl -fsSL -o "$RUNNER_TEMP/maestro.zip" \ "https://github.com/mobile-dev-inc/Maestro/releases/download/cli-${MAESTRO_VERSION}/maestro.zip" - echo "3440825f514f537c6a96bcf5de995780c2a4a7f83a43208fdc95d4f1fecfad3b $RUNNER_TEMP/maestro.zip" \ + echo "29b675e10cc12080e445e9bfb2e2b4e4dfb9c0f2e30d5884120d258b5e1cd991 $RUNNER_TEMP/maestro.zip" \ | shasum -a 256 --check unzip -q "$RUNNER_TEMP/maestro.zip" -d "$RUNNER_TEMP" echo "$RUNNER_TEMP/maestro/bin" >> "$GITHUB_PATH" diff --git a/__e2e__/setupApp.yml b/__e2e__/setupApp.yml index ab9623ffba..be1794c523 100644 --- a/__e2e__/setupApp.yml +++ b/__e2e__/setupApp.yml @@ -3,34 +3,22 @@ appId: xyz.blueskyweb.app - launchApp: appId: "xyz.blueskyweb.app" clearState: true - arguments: - "-EXDevMenuIsOnboardingFinished": true -- runFlow: - when: - platform: iOS - commands: - - extendedWaitUntil: - visible: "http://localhost:8081" - timeout: 60000 - - tapOn: "http://localhost:8081" -- runFlow: - when: - platform: Android - commands: - - extendedWaitUntil: - visible: "http://10.0.2.2:8081" - timeout: 60000 - - tapOn: "http://10.0.2.2:8081" - - extendedWaitUntil: - visible: "Continue" - timeout: 180000 - - tapOn: "Continue" - - back - extendedWaitUntil: visible: id: e2eProxyHeaderInput timeout: 180000 -- tapOn: - id: e2eProxyHeaderInput -- inputText: ${output.result} -- pressKey: Enter +- extendedWaitUntil: + visible: "Sign in" + timeout: 180000 +- retry: + maxRetries: 3 + commands: + - tapOn: + id: e2eProxyHeaderInput + - eraseText + - inputText: ${output.result} + - pressKey: Enter + - extendedWaitUntil: + visible: + id: e2eSignInAlice + timeout: 10000 diff --git a/app.config.js b/app.config.js index b9b4a42a9d..bc1de0b2d7 100644 --- a/app.config.js +++ b/app.config.js @@ -20,6 +20,7 @@ module.exports = function (_config) { const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight' const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production' + const IS_E2E = process.env.EXPO_PUBLIC_ENV === 'e2e' const IS_DEV = !IS_TESTFLIGHT && !IS_PRODUCTION const ASSOCIATED_DOMAINS = [ @@ -234,6 +235,25 @@ module.exports = function (_config) { checkAutomatically: 'NEVER', }, plugins: [ + [ + 'expo-dev-client', + { + toolsButton: false, + ...(IS_E2E + ? { + launchMode: 'most-recent', + skipOnboarding: true, + showMenuAtLaunch: false, + ios: { + defaultLaunchURL: 'http://localhost:8081', + }, + android: { + defaultLaunchURL: 'http://10.0.2.2:8081', + }, + } + : {}), + }, + ], 'expo-video', 'expo-localization', 'expo-web-browser',