|
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 --no-logs && |
|
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 --no-logs |
|
env: |
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
- name: Run E2E tests |
|
run: maestro --platform ios test tests/e2e/ios.yaml |