aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2021-12-07 15:36:41 +0530
committerHarsh Shandilya <me@msfjarvis.dev>2021-12-07 15:38:19 +0530
commit57d0dbad36d1a2c2e37246d8a9b287cb0b9eb470 (patch)
tree3e1371deec1f928cba21c979caec5383b335c0bd /.github
parent09a10678de532e8a499cbdf9d4f97ab0fd6fdd1a (diff)
github: split PR tasks into separate jobs
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/pull_request.yml144
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