From 57d0dbad36d1a2c2e37246d8a9b287cb0b9eb470 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 7 Dec 2021 15:36:41 +0530 Subject: github: split PR tasks into separate jobs --- .github/workflows/pull_request.yml | 144 +++++++++++++++++++++++++++++++++++-- 1 file changed, 139 insertions(+), 5 deletions(-) (limited to '.github') diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 4831b791..c159ec16 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -7,7 +7,7 @@ concurrency: cancel-in-progress: true jobs: - unit-tests: + check-codestyle: runs-on: ubuntu-latest steps: - name: Checkout repository @@ -36,21 +36,155 @@ jobs: if: ${{ steps.service-changed.outputs.result == 'true' }} run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - - name: Build debug APKs + - name: Check codestyle if: ${{ steps.service-changed.outputs.result == 'true' }} uses: gradle/gradle-build-action@v2.0.1 with: - arguments: assembleFreeDebug assembleNonFreeDebug + arguments: spotlessCheck + + unit-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2.4.0 + with: + fetch-depth: 0 + + - name: Check if relevant files have changed + uses: actions/github-script@v4.0.0 + id: service-changed + with: + result-encoding: string + script: | + const script = require('.github/check-changed-files.js') + return await script({github, context}) + + - name: Set up JDK + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses : actions/setup-java@v2.4.0 + with : + distribution : 'zulu' + java-version : '11' + cache: 'gradle' + + - name: Copy CI gradle.properties + if: ${{ steps.service-changed.outputs.result == 'true' }} + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Run unit tests if: ${{ steps.service-changed.outputs.result == 'true' }} uses: gradle/gradle-build-action@v2.0.1 with: - arguments: apiCheck test lintFreeDebug spotlessCheck -PslimTests + arguments: test -PslimTests - - name: (Fail-only) upload test report + - name: (Fail-only) Upload test report if: failure() uses: actions/upload-artifact@v2.2.4 with: name: Test report path: app/build/reports + + build-apks: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2.4.0 + with: + fetch-depth: 0 + + - name: Check if relevant files have changed + uses: actions/github-script@v4.0.0 + id: service-changed + with: + result-encoding: string + script: | + const script = require('.github/check-changed-files.js') + return await script({github, context}) + + - name: Set up JDK + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses : actions/setup-java@v2.4.0 + with : + distribution : 'zulu' + java-version : '11' + cache: 'gradle' + + - name: Copy CI gradle.properties + if: ${{ steps.service-changed.outputs.result == 'true' }} + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Build debug APKs + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses: gradle/gradle-build-action@v2.0.1 + with: + arguments: assembleFreeDebug assembleNonFreeDebug + + check-api: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2.4.0 + with: + fetch-depth: 0 + + - name: Check if relevant files have changed + uses: actions/github-script@v4.0.0 + id: service-changed + with: + result-encoding: string + script: | + const script = require('.github/check-changed-files.js') + return await script({github, context}) + + - name: Set up JDK + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses : actions/setup-java@v2.4.0 + with : + distribution : 'zulu' + java-version : '11' + cache: 'gradle' + + - name: Copy CI gradle.properties + if: ${{ steps.service-changed.outputs.result == 'true' }} + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Check library API + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses: gradle/gradle-build-action@v2.0.1 + with: + arguments: apiCheck + + lint-debug: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2.4.0 + with: + fetch-depth: 0 + + - name: Check if relevant files have changed + uses: actions/github-script@v4.0.0 + id: service-changed + with: + result-encoding: string + script: | + const script = require('.github/check-changed-files.js') + return await script({github, context}) + + - name: Set up JDK + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses : actions/setup-java@v2.4.0 + with : + distribution : 'zulu' + java-version : '11' + cache: 'gradle' + + - name: Copy CI gradle.properties + if: ${{ steps.service-changed.outputs.result == 'true' }} + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Run Lint on debug variants + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses: gradle/gradle-build-action@v2.0.1 + with: + arguments: lintDebug -- cgit v1.2.3