From e8f5963a57e9dcc21e48235bc3aea39464f7acbe Mon Sep 17 00:00:00 2001 From: Aakash Singh <46787056+sainAk@users.noreply.github.com> Date: Sun, 4 Oct 2020 22:14:04 +0530 Subject: [PATCH] Workflow improvements (#3891) * add caching steps to build_check workflow * add gradle.properites for github runner * refactor ci-gradle.properties * specify ndk versiion in build.gradle * remove ndk install and cache steps from build_check * moved runner files to separate folder * refactor build_check.yml --- .github/runner-files/checksum.sh | 23 +++++++++++++++++++++++ .github/runner-files/ci-gradle.properties | 6 ++++++ .github/workflows/build_check.yml | 20 ++++++++++++++++++-- app/build.gradle | 1 + buildSrc/src/main/kotlin/AndroidConfig.kt | 1 + 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100755 .github/runner-files/checksum.sh create mode 100644 .github/runner-files/ci-gradle.properties diff --git a/.github/runner-files/checksum.sh b/.github/runner-files/checksum.sh new file mode 100755 index 0000000000..e3dcd6db83 --- /dev/null +++ b/.github/runner-files/checksum.sh @@ -0,0 +1,23 @@ +#!/bin/bash +RESULT_FILE=$1 + +if [ -f $RESULT_FILE ]; then + rm $RESULT_FILE +fi +touch $RESULT_FILE + +checksum_file() { + echo $(openssl md5 $1 | awk '{print $2}') +} + +FILES=() +while read -r -d ''; do + FILES+=("$REPLY") +done < <(find . -type f \( -name "build.gradle*" -o -name "Dependencies.kt" -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 \ No newline at end of file diff --git a/.github/runner-files/ci-gradle.properties b/.github/runner-files/ci-gradle.properties new file mode 100644 index 0000000000..d34c1d3adb --- /dev/null +++ b/.github/runner-files/ci-gradle.properties @@ -0,0 +1,6 @@ +org.gradle.daemon=false +org.gradle.jvmargs=-Xmx5120m +org.gradle.workers.max=2 + +kotlin.incremental=false +kotlin.compiler.execution.strategy=in-process \ No newline at end of file diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml index 8a47640f5c..3b13873e8c 100644 --- a/.github/workflows/build_check.yml +++ b/.github/workflows/build_check.yml @@ -16,8 +16,24 @@ jobs: uses: actions/setup-java@v1 with: java-version: 1.8 - - name: Install NDK - run: sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;21.0.6113669" &> /dev/null + + - name: Copy CI gradle.properties + run: | + mkdir -p ~/.gradle + cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Generate Gradle cache key + run: ./.github/runner-files/checksum.sh checksum.txt + + - name: Cache Gradle dependencies + uses: actions/cache@v2 + continue-on-error: true # continue if the cache restore/upload fails + with: + path: | + ~/.gradle/caches/build-cache-* + ~/.gradle/caches/jars-* + ~/.gradle/caches/modules-* + key: ${{ runner.os }}-gradle-${{ hashFiles('checksum.txt') }} - name: Build app run: ./gradlew assembleStandardDebug diff --git a/app/build.gradle b/app/build.gradle index f6d2c71cf9..a86084e06f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,6 +34,7 @@ ext { android { compileSdkVersion AndroidConfig.compileSdk buildToolsVersion AndroidConfig.buildTools + ndkVersion AndroidConfig.ndk defaultConfig { applicationId "eu.kanade.tachiyomi" diff --git a/buildSrc/src/main/kotlin/AndroidConfig.kt b/buildSrc/src/main/kotlin/AndroidConfig.kt index 8fde6b8fe9..d53ed1e430 100644 --- a/buildSrc/src/main/kotlin/AndroidConfig.kt +++ b/buildSrc/src/main/kotlin/AndroidConfig.kt @@ -3,4 +3,5 @@ object AndroidConfig { const val minSdk = 21 const val targetSdk = 29 const val buildTools = "29.0.3" + const val ndk = "21.3.6528147" }