name: E2E on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: jobs: e2e-android: runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Set up Java 17 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - name: Install PythonNative run: pip install -e . - name: Install Maestro run: | curl -Ls "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH - name: Build, install, and run E2E tests uses: reactivecircus/android-emulator-runner@v2 with: api-level: 31 arch: x86_64 script: >- cd examples/hello-world && pn run android && sleep 5 && cd ../.. && maestro test tests/e2e/android.yaml e2e-ios: runs-on: macos-latest timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install PythonNative run: pip install -e . - name: Install Maestro and idb run: | curl -Ls "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH brew tap facebook/fb && brew install idb-companion - name: Build and launch iOS app working-directory: examples/hello-world run: pn run ios env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run E2E tests run: maestro --platform ios test tests/e2e/ios.yaml