# .eas/workflows/e2e.yml: Maestro on every pull request, without a native build when nothing native changed. # fingerprint -> get-build (same fingerprint, simulator/emulator build) -> repack if found, build if not -> maestro. name: e2e on: pull_request: branches: ['main'] jobs: fingerprint: type: fingerprint environment: preview android_get_build: needs: [fingerprint] type: get-build params: platform: android profile: e2e fingerprint_hash: ${{ needs.fingerprint.outputs.android_fingerprint_hash }} android_repack: needs: [android_get_build] if: ${{ needs.android_get_build.outputs.build_id }} type: repack params: build_id: ${{ needs.android_get_build.outputs.build_id }} android_build: needs: [android_get_build] if: ${{ !needs.android_get_build.outputs.build_id }} type: build params: platform: android profile: e2e android_maestro: after: [android_repack, android_build] type: maestro environment: preview runs_on: linux-medium-nested-virtualization # Android Emulator needs a nested-virtualization worker params: build_id: ${{ needs.android_repack.outputs.build_id || needs.android_build.outputs.build_id }} flow_path: ./maestro/flows include_tags: smoke retries: 1 ios_get_build: needs: [fingerprint] type: get-build params: platform: ios profile: e2e fingerprint_hash: ${{ needs.fingerprint.outputs.ios_fingerprint_hash }} ios_repack: needs: [ios_get_build] if: ${{ needs.ios_get_build.outputs.build_id }} type: repack params: build_id: ${{ needs.ios_get_build.outputs.build_id }} ios_build: needs: [ios_get_build] if: ${{ !needs.ios_get_build.outputs.build_id }} type: build params: platform: ios profile: e2e ios_maestro: after: [ios_repack, ios_build] type: maestro environment: preview params: build_id: ${{ needs.ios_repack.outputs.build_id || needs.ios_build.outputs.build_id }} flow_path: ./maestro/flows include_tags: smoke retries: 1