diff options
author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-05-01 15:20:57 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 15:20:57 +0530 |
commit | 9696af4024e2b74c5a893883631fa70b97aaf4ee (patch) | |
tree | 0b42be5de63dc47e403261d944dbe32a1070ce85 | |
parent | 92131bc6d4eb0dc6bfc77df5b23ec74d4f98dc29 (diff) |
Update Actions caching and add workflow to validate Gradle wrapper (#754)
-rwxr-xr-x | .github/checksum.sh | 23 | ||||
-rw-r--r-- | .github/workflows/branch_deploy.yml | 28 | ||||
-rw-r--r-- | .github/workflows/pull_request.yml | 28 | ||||
-rw-r--r-- | .github/workflows/validate_wrapper.yml | 10 |
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 |