name: Build & test (snapshot)

on:
  push:
    branches:
      - snapshot
    paths-ignore:
      - '**.md'
  pull_request:
    branches:
      - snapshot
  workflow_dispatch:

jobs:
  build:
    # Skip build if head commit contains 'skip ci'
    if: "!contains(github.event.head_commit.message, 'skip ci')"

    runs-on: ubuntu-latest
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@v2
        with:
          # Fetch expanded history, which is needed for affected module detection
          fetch-depth: '500'

      - name: Copy CI gradle.properties
        run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

      - name: set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 17

      - name: Decrypt secrets
        run: release/signing-setup.sh ${{ secrets.ENCRYPT_KEY }}

      - name: Generate cache key
        run: ./checksum.sh checksum.txt

      - uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches/modules-*
            ~/.gradle/caches/jars-*
            ~/.gradle/caches/build-cache-*
          key: gradle-${{ hashFiles('checksum.txt') }}

      - name: Build
        run: |
          ./gradlew --scan --stacktrace \
              spotlessCheck \
              assemble \
              metalavaCheckCompatibilityRelease \
              lintDebug

      - name: Unit Tests
        run: |
          ./scripts/run-tests.sh \
              --unit-tests \
              --run-affected \
              --affected-base-ref=$BASE_REF

      - name: Upload test results
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: test-results-robolectric
          path: |
            **/build/test-results/*
            **/build/reports/*

      - name: Clean secrets
        if: always()
        run: release/signing-cleanup.sh

  test:
    runs-on: macos-latest
    needs: build
    timeout-minutes: 50

    strategy:
      # Allow tests to continue on other devices if they fail on one device.
      fail-fast: false
      matrix:
        api-level: [ 22, 26, 29, 31, 32 ]
        shard: [ 0, 1 ] # Need to update shard-count below if this changes

    env:
      TERM: dumb

    steps:
      - uses: actions/checkout@v2
        with:
          # Fetch expanded history, which is needed for affected module detection
          fetch-depth: '500'

      - name: Copy CI gradle.properties
        run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

      - name: set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 17

      - name: Decrypt secrets
        run: release/signing-setup.sh ${{ secrets.ENCRYPT_KEY }}

      - name: Generate cache key
        run: ./checksum.sh checksum.txt

      - uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches/modules-*
            ~/.gradle/caches/jars-*
            ~/.gradle/caches/build-cache-*
          key: gradle-${{ hashFiles('checksum.txt') }}

      # Determine what emulator image to use. We run all API 28+ emulators using
      # the google_apis image
      - name: Determine emulator target
        id: determine-target
        env:
          API_LEVEL: ${{ matrix.api-level }}
        run: |
          TARGET="default"
          if [ "$API_LEVEL" -ge "28" ]; then
            TARGET="google_apis"
          fi
          echo "TARGET=$TARGET" >> $GITHUB_OUTPUT

      - name: Run tests
        uses: reactivecircus/android-emulator-runner@v2
        with:
          api-level: ${{ matrix.api-level }}
          target: ${{ steps.determine-target.outputs.TARGET }}
          profile: Galaxy Nexus
          script: ./scripts/run-tests.sh --log-file=logcat.txt --run-affected --affected-base-ref=$BASE_REF --shard-index=${{ matrix.shard }} --shard-count=2

      - name: Clean secrets
        if: always()
        run: release/signing-cleanup.sh

      - name: Upload logs
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: logs-${{ matrix.api-level }}-${{ steps.determine-target.outputs.TARGET }}-${{ matrix.shard }}
          path: logcat.txt

      - name: Upload test results
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: test-results-${{ matrix.api-level }}-${{ steps.determine-target.outputs.TARGET }}-${{ matrix.shard }}
          path: |
            **/build/reports/*
            **/build/outputs/*/connected/*

  deploy:
    if: github.event_name == 'push' # only deploy for pushed commits (not PRs)

    runs-on: ubuntu-latest
    needs: [ build, test ]
    timeout-minutes: 30
    env:
      TERM: dumb

    steps:
      - uses: actions/checkout@v2

      - name: Copy CI gradle.properties
        run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

      - name: set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 17

      - name: Decrypt secrets
        run: release/signing-setup.sh ${{ secrets.ENCRYPT_KEY }}

      - name: Generate cache key
        run: ./checksum.sh checksum.txt

      - uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches/modules-*
            ~/.gradle/caches/jars-*
            ~/.gradle/caches/build-cache-*
          key: gradle-${{ hashFiles('checksum.txt') }}

      - name: Deploy to Sonatype
        run: ./gradlew publish --no-parallel --stacktrace --no-configuration-cache
        env:
          ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
          ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}

      - name: Clean secrets
        if: always()
        run: release/signing-cleanup.sh
