| name: Presubmit |
| |
| on: [push] |
| |
| concurrency: |
| group: build-${{ github.ref }} |
| cancel-in-progress: true |
| |
| env: |
| JDK_VERSION: 17 |
| DISTRIBUTION: 'zulu' |
| |
| jobs: |
| build: |
| name: Build |
| runs-on: ubuntu-latest |
| timeout-minutes: 120 |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| |
| - name: Validate Gradle Wrapper |
| uses: gradle/wrapper-validation-action@v1 |
| |
| - name: Set up JDK |
| uses: actions/setup-java@v3 |
| with: |
| distribution: ${{ env.DISTRIBUTION }} |
| java-version: ${{ env.JDK_VERSION }} |
| cache: gradle |
| |
| - name: Setup Gradle |
| uses: gradle/gradle-build-action@v2 |
| |
| - name: Build all build type and flavor permutations |
| run: ./gradlew assemble --parallel --build-cache |
| |
| - name: Upload build outputs (APKs) |
| uses: actions/upload-artifact@v3 |
| with: |
| name: build-outputs |
| path: app/build/outputs |
| |
| - name: Upload build reports |
| if: always() |
| continue-on-error: true |
| uses: actions/upload-artifact@v3 |
| with: |
| name: build-reports |
| path: "*/build/reports" |
| |
| test: |
| name: Unit Tests |
| runs-on: ubuntu-latest |
| timeout-minutes: 120 |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| |
| - name: Validate Gradle Wrapper |
| uses: gradle/wrapper-validation-action@v1 |
| |
| - name: Set up JDK |
| uses: actions/setup-java@v3 |
| with: |
| distribution: ${{ env.DISTRIBUTION }} |
| java-version: ${{ env.JDK_VERSION }} |
| cache: gradle |
| |
| - name: Setup Gradle |
| uses: gradle/gradle-build-action@v2 |
| continue-on-error: true |
| |
| - name: Run local tests |
| run: ./gradlew test --parallel --build-cache |
| |
| - name: Upload test reports on failure |
| if: failure() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: test-reports |
| path: "*/build/reports/tests" |
| |
| spotless: |
| name: Spotless Check |
| runs-on: ubuntu-latest |
| timeout-minutes: 60 |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| with: |
| fetch-depth: 0 |
| |
| - name: Validate Gradle Wrapper |
| uses: gradle/wrapper-validation-action@v1 |
| |
| - name: Set up JDK |
| uses: actions/setup-[email protected] |
| with: |
| distribution: ${{ env.DISTRIBUTION }} |
| java-version: ${{ env.JDK_VERSION }} |
| cache: gradle |
| |
| - name: Setup Gradle |
| uses: gradle/gradle-build-action@v2 |
| |
| - name: Spotless Check |
| run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --parallel --build-cache |