name: e2e-android
on: push

jobs:
  e2e-android:
    runs-on: macos-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          cache: yarn
          node-version-file: .nvmrc

      - name: Install Yarn dependencies
        run: yarn --frozen-lockfile --prefer-offline

      - name: Setup Java
        uses: actions/setup-java@v3
        with:
          cache: gradle
          distribution: temurin
          java-version: 17

      - name: Cache Detox build
        id: cache-detox-build
        uses: actions/cache@v3
        with:
          path: android/app/build
          key: ${{ runner.os }}-detox-build
          restore-keys: |
            ${{ runner.os }}-detox-build

      - name: Detox build
        run: yarn build:android-debug

      - name: Get device name
        id: device
        run: node -e "console.log('AVD_NAME=' + require('./Example/testHotUpdate/.detoxrc').devices.emulator.device.avdName)" >> $GITHUB_OUTPUT

      - name: Detox test
        uses: reactivecircus/android-emulator-runner@v2
        with:
          api-level: 31
          arch: x86_64
          avd-name: ${{ steps.device.outputs.AVD_NAME }}
          script: yarn test:android-debug
