name: Validate

on:
  pull_request:
  push:
    branches:
      - master

jobs:
  gradle-wrapper:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: gradle/wrapper-validation-action@v1
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v3
      - name: Setup JDK
        uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: 11
          cache: 'gradle'
      - name: Run Lint
        run: ./gradlew lintDebug --no-daemon
      - name: Zip reports
        if: always()
        run: zip -r reports.zip . -i '**/reports/*.xml' '**/reports/*.html'
      - name: Upload reports
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: lint_reports
          path: reports.zip
  unit-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v3
      - name: Setup JDK
        uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: 11
          cache: 'gradle'
      - name: Run Unit Tests
        run: ./gradlew testDebugUnitTest --no-daemon
      - name: Zip reports
        if: always()
        run: zip -r reports.zip . -i '**/reports/*.xml' '**/reports/*.html'
      - name: Upload reports
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: unit_test_reports
          path: reports.zip
  snapshot-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v3
      - name: Setup env
        shell: bash
        run: |
          curl https://us-central1-lottie-snapshots.cloudfunctions.net/snapshot-env-v1/emulator > snapshot-env
          while read line; do
            echo "$line" >> $GITHUB_ENV
          done < snapshot-env
      - name: Setup JDK
        uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: 11
          cache: 'gradle'
      - name: Build app
        run: ./gradlew snapshot-tests:assembleDebug snapshot-tests:assembleDebugAndroidTest --no-daemon
      - name: Run tests
        uses: emulator-wtf/run-tests@master
        with:
          api-token: ${{ env.EW_API_TOKEN }}
          app: snapshot-tests/build/outputs/apk/debug/snapshot-tests-debug.apk
          test: snapshot-tests/build/outputs/apk/androidTest/debug/snapshot-tests-debug-androidTest.apk
          devices: |
            model=Pixel2,version=23
            model=Pixel2,version=31
          outputs-dir: build/test-results
      - name: Save PR number
        if: github.event_name == 'pull_request'
        env:
          PR_NUMBER: ${{ github.event.number }}
        run: |
          mkdir -p ./env
          echo PR_NUMBER=$PR_NUMBER > ./env/env
          echo GITHUB_SHA=${{ github.sha }}
      - uses: actions/upload-artifact@v3
        with:
          name: env
          path: env/
  deploy:
    if: github.event_name == 'push' && github.repository == 'airbnb/lottie-android' && github.ref == 'refs/heads/master'
    runs-on: ubuntu-latest
    needs: [lint, unit-test, gradle-wrapper, snapshot-tests]
    steps:
      - name: Checkout the code
        uses: actions/checkout@v3
      - name: Setup JDK
        uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: 11
          cache: 'gradle'
      - name: "Deploy Snapshot"
        env:
          SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
          SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
        run: ./deploy_snapshot.sh
