diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2021-12-07 15:36:41 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2021-12-07 15:38:19 +0530 |
commit | 57d0dbad36d1a2c2e37246d8a9b287cb0b9eb470 (patch) | |
tree | 3e1371deec1f928cba21c979caec5383b335c0bd /.github | |
parent | 09a10678de532e8a499cbdf9d4f97ab0fd6fdd1a (diff) |
github: split PR tasks into separate jobs
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/pull_request.yml | 144 |
1 files changed, 139 insertions, 5 deletions
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 |