From 9696af4024e2b74c5a893883631fa70b97aaf4ee Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 1 May 2020 15:20:57 +0530 Subject: Update Actions caching and add workflow to validate Gradle wrapper (#754) --- .github/checksum.sh | 23 +++++++++++++++++++++++ .github/workflows/branch_deploy.yml | 28 +++++++++++++++++++++++++--- .github/workflows/pull_request.yml | 28 +++++++++++++++++++++++++--- .github/workflows/validate_wrapper.yml | 10 ++++++++++ 4 files changed, 83 insertions(+), 6 deletions(-) create mode 100755 .github/checksum.sh create mode 100644 .github/workflows/validate_wrapper.yml 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 -- cgit v1.2.3