aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2020-05-01 15:20:57 +0530
committerGitHub <noreply@github.com>2020-05-01 15:20:57 +0530
commit9696af4024e2b74c5a893883631fa70b97aaf4ee (patch)
tree0b42be5de63dc47e403261d944dbe32a1070ce85 /.github
parent92131bc6d4eb0dc6bfc77df5b23ec74d4f98dc29 (diff)
Update Actions caching and add workflow to validate Gradle wrapper (#754)
Diffstat (limited to '.github')
-rwxr-xr-x.github/checksum.sh23
-rw-r--r--.github/workflows/branch_deploy.yml28
-rw-r--r--.github/workflows/pull_request.yml28
-rw-r--r--.github/workflows/validate_wrapper.yml10
4 files changed, 83 insertions, 6 deletions
diff --git a/.github/checksum.sh b/.github/checksum.sh
new file mode 100755
index 00000000..a1c7791a
--- /dev/null
+++ b/.github/checksum.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+RESULT_FILE=$1
+
+if [ -f $RESULT_FILE ]; then
+ rm $RESULT_FILE
+fi
+touch $RESULT_FILE
+
+checksum_file() {
+ echo $(sha256sum $1 | awk '{print $1}')
+}
+
+FILES=()
+while read -r -d ''; do
+ FILES+=("$REPLY")
+done < <(find . -type f \( -name "build.gradle*" -o -name "dependencies.gradle" -o -name "gradle-wrapper.properties" \) -print0)
+
+# Loop through files and append MD5 to result file
+for FILE in ${FILES[@]}; do
+ echo $(checksum_file $FILE) >> $RESULT_FILE
+done
+# Now sort the file so that it is
+sort $RESULT_FILE -o $RESULT_FILE
diff --git a/.github/workflows/branch_deploy.yml b/.github/workflows/branch_deploy.yml
index 7b681ab7..7181faca 100644
--- a/.github/workflows/branch_deploy.yml
+++ b/.github/workflows/branch_deploy.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 e3b84a37..a6cfccc3 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -15,10 +15,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: Run unit tests
run: ./gradlew spotlessCheck test${{ matrix.variant }} lint${{ matrix.variant}} -Dpre-dex=false
diff --git a/.github/workflows/validate_wrapper.yml b/.github/workflows/validate_wrapper.yml
new file mode 100644
index 00000000..d1830265
--- /dev/null
+++ b/.github/workflows/validate_wrapper.yml
@@ -0,0 +1,10 @@
+name: "Validate Gradle Wrapper"
+on: pull_request
+
+jobs:
+ validation:
+ name: "Wrapper validation"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: gradle/wrapper-validation-action@v1