name: Android Instrumentation Tests on: workflow_dispatch: {} push: branches: [main] paths: - .github/workflows/android-instrumentation-tests.yml - android/** - fastlane/** # - packages/**/android/** - packages/expo-eas-client/android/** - packages/expo-json-utils/android/** - packages/expo-manifests/android/** - packages/expo-updates/android/** - yarn.lock - '!packages/@expo/cli/**' pull_request: paths: - .github/workflows/android-instrumentation-tests.yml - android/** - fastlane/** # - packages/**/android/** - packages/expo-eas-client/android/** - packages/expo-json-utils/android/** - packages/expo-manifests/android/** - packages/expo-updates/android/** - yarn.lock - '!packages/@expo/cli/**' concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: true jobs: test: runs-on: macos-11 timeout-minutes: 60 env: ORG_GRADLE_PROJECT_reactNativeArchitectures: x86_64 GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=1024m strategy: matrix: api-level: [31] steps: - name: โฌข Setup Node uses: actions/setup-node@v3 with: node-version: '14.17' - name: ๐Ÿ‘€ Check out repository uses: actions/checkout@v3 with: submodules: true - name: ๐Ÿ”จ Use JDK 11 uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '11' - name: โ™ป๏ธ Restore caches uses: ./.github/actions/expo-caches id: expo-caches with: yarn-workspace: 'true' yarn-tools: 'true' avd: 'true' avd-api: ${{ matrix.api-level }} hermes-engine-aar: 'true' - name: โž• Add `bin` to GITHUB_PATH run: echo "$(pwd)/bin" >> $GITHUB_PATH - name: ๐Ÿงถ Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' run: yarn install --frozen-lockfile - name: ๐Ÿ“ฑ Run instrumented unit tests timeout-minutes: 40 uses: reactivecircus/android-emulator-runner@v2 with: api-level: ${{ matrix.api-level }} avd-name: avd-${{ matrix.api-level }} arch: x86_64 force-avd-creation: false script: expotools android-native-unit-tests --type instrumented - name: ๐Ÿ’พ Save test results if: always() uses: actions/upload-artifact@v3 with: name: test-results path: packages/**/build/test-reports/**/*xml