aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2020-05-23 16:34:10 +0530
committerGitHub <noreply@github.com>2020-05-23 16:34:10 +0530
commit0c45bffaba1192ea8a10173e709f439dbf32b089 (patch)
treea07c7774ba4a3ce176bd0220e39b8d9c1af9ce39
parentd034da8d01f67cfd0869a73795f0e1fc5ac4f2ca (diff)
github: Switch to dynamic filtering (#786)
Also update cache layout for snapshot deployment workflows
-rw-r--r--.github/workflows/deploy_snapshot.yml28
-rw-r--r--.github/workflows/pull_request.yml38
2 files changed, 52 insertions, 14 deletions
diff --git a/.github/workflows/deploy_snapshot.yml b/.github/workflows/deploy_snapshot.yml
index d67d3f38..4ec15a2a 100644
--- a/.github/workflows/deploy_snapshot.yml
+++ b/.github/workflows/deploy_snapshot.yml
@@ -20,10 +20,32 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
- - uses: actions/cache@v1
+ - name: Generate cache key
+ run: ./.github/checksum.sh checksum.txt
+
+ - name: Cache gradle modules
+ uses: actions/cache@v1
+ with:
+ path: ~/.gradle/caches/modules-2
+ key: ${{ runner.os }}-gradlemodules-${{ hashFiles('checksum.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-gradlemodules-
+
+ - name: Cache gradle jars
+ uses: actions/cache@v1
+ with:
+ path: ~/.gradle/caches/jars-3
+ key: ${{ runner.os }}-gradlejars-${{ hashFiles('checksum.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-gradlejars-
+
+ - name: Cache gradle build
+ uses: actions/cache@v1
with:
- path: ~/.gradle/caches
- key: gradle-${{ runner.os }}-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/dependencies.gradle') }}
+ path: ~/.gradle/caches/build-cache-1
+ key: ${{ runner.os }}-gradlebuildcache-${{ hashFiles('checksum.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-gradlebuildcache-
- name: Download gradle dependencies
run: ./gradlew dependencies
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index 7d80d3a5..885d71f8 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -1,13 +1,4 @@
-on:
- pull_request:
- paths:
- - '.github/**'
- - 'app/**'
- - 'gradle/**'
- - '*.properties'
- - '*.gradle'
- - 'gradlew'
- - 'gradlew.bat'
+on: [pull_request]
name: Check pull request
jobs:
@@ -19,15 +10,36 @@ jobs:
variant: [Debug, Release]
steps:
- - uses: actions/checkout@master
+ - name: Check if relevant files have changed
+ uses: actions/github-script@0.9.0
+ id: service-changed
+ with:
+ result-encoding: string
+ script: |
+ const result = await github.pulls.listFiles({
+ owner: context.payload.repository.owner.login,
+ repo: context.payload.repository.name,
+ pull_number: context.payload.number,
+ per_page: 100
+ })
+ const serviceChanged = result.data.filter(f => f.filename.startsWith("app/") || f.filename.endsWith("gradle") || f.filename.startsWith(".github") || f.filename.startsWith("gradle") || f.filename.endsWith("properties")).length > 0
+ console.log(serviceChanged)
+ return serviceChanged
+
+ - name: Checkout repository
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
+ uses: actions/checkout@v1
- 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: Generate cache key
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
run: ./.github/checksum.sh checksum.txt
- name: Cache gradle modules
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
uses: actions/cache@v1
with:
path: ~/.gradle/caches/modules-2
@@ -36,6 +48,7 @@ jobs:
${{ runner.os }}-gradlemodules-
- name: Cache gradle jars
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
uses: actions/cache@v1
with:
path: ~/.gradle/caches/jars-3
@@ -44,6 +57,7 @@ jobs:
${{ runner.os }}-gradlejars-
- name: Cache gradle build
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
uses: actions/cache@v1
with:
path: ~/.gradle/caches/build-cache-1
@@ -52,9 +66,11 @@ jobs:
${{ runner.os }}-gradlebuildcache-
- name: Run unit tests
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
run: ./gradlew test${{ matrix.variant }} lint${{ matrix.variant}} -Dpre-dex=false
- name: Run instrumentation tests
+ if: ${{ steps.service-changed.outputs.result == 'true' }}
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}