diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml index ae87a05fd153..7e65adfe1238 100644 --- a/.github/workflows/analysis.yml +++ b/.github/workflows/analysis.yml @@ -73,6 +73,7 @@ jobs: { echo "org.gradle.jvmargs=-Xmx5g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" echo "org.gradle.configureondemand=true" + echo "org.gradle.configuration-cache=false" echo "kapt.incremental.apt=true" } > "$HOME/.gradle/gradle.properties" scripts/analysis/analysis-wrapper.sh "${{ steps.get-vars.outputs.branch }}" "${{ secrets.LOG_USERNAME }}" "${{ secrets.LOG_PASSWORD }}" "$GITHUB_RUN_NUMBER" "${{ steps.get-vars.outputs.pr }}" diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index e71aecea0498..e842ee9e7a06 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -48,8 +48,8 @@ jobs: mkdir -p "$HOME/.gradle" echo "org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" > "$HOME/.gradle/gradle.properties" echo "org.gradle.caching=true; org.gradle.parallel=true; org.gradle.configureondemand=true; kapt.incremental.apt=true" >> "$HOME/.gradle/gradle.properties" - sed -i "/qa/,/\}/ s/versionCode .*/versionCode ${{github.event.number}} /" "app/build.gradle" - sed -i "/qa/,/\}/ s/versionName .*/versionName \"${{github.event.number}}\"/" "app/build.gradle" + sed -i "/qa/,/\}/ s/versionCode.*/versionCode = ${{ github.event.number }}/" app/build.gradle.kts + sed -i "/qa/,/\}/ s/versionName.*/versionName = \"${{ github.event.number }}\"/" app/build.gradle.kts ./gradlew assembleQaDebug $(find /usr/local/lib/android/sdk/build-tools/*/apksigner | sort | tail -n1) sign --ks-pass pass:"$KS_PASS" --key-pass pass:"$KEY_PASS" --ks-key-alias key0 --ks ".github/workflows/QA_keystore.jks" app/build/outputs/apk/qa/debug/*qa-debug*.apk .github/workflows/uploadArtifact.sh "$LOG_USERNAME" "$LOG_PASSWORD" "${{github.event.number}}" "${{github.event.number}}" "$GITHUB_TOKEN" diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2017d4b14d0f..590df26f2050 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -297,18 +297,19 @@ tasks.withType().configureEach { val variantName = variantNameCap.substring(0, 1).lowercase() + variantNameCap.substring(1) dependsOn("compile${variantNameCap}Sources") - classes = - fileTree(layout.buildDirectory.get().asFile.toString() + "/intermediates/javac/${variantName}/compile${variantNameCap}JavaWithJavac/classes/") - excludeFilter = file("${project.rootDir}/scripts/analysis/spotbugs-filter.xml") - reports { - register("xml") { - required = true - } - register("html") { - required = true - outputLocation = layout.buildDirectory.file("reports/spotbugs/spotbugs.html").get().asFile - setStylesheet("fancy.xsl") - } + classes = fileTree( + layout.buildDirectory.get().asFile.toString() + + "/intermediates/javac/${variantName}/compile${variantNameCap}JavaWithJavac/classes/" + ) + excludeFilter.set(file("${project.rootDir}/scripts/analysis/spotbugs-filter.xml")) + + reports.create("xml") { + required.set(true) + } + reports.create("html") { + required.set(true) + outputLocation.set(layout.buildDirectory.file("reports/spotbugs/spotbugs.html")) + setStylesheet("fancy.xsl") } } diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 8e765549470e..eb0f2de0ca1f 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -210,7 +210,7 @@ end desc "compute version" private_lane :androidVersion do - File.open("../app/build.gradle","r") do |f| + File.open("../app/build.gradle.kts","r") do |f| text = f.read # everything between Document and Authors diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6ca9c2b760ea..a4dcdd3c7af4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ glide = "5.0.5" gsonVersion = "2.13.2" ical4jVersion = "3.2.19" jackrabbitWebdavVersion = "2.13.5" -jacoco = "0.8.13" +jacoco = "0.8.14" jsonVersion = "20250517" junit = "4.13.2" junitVersion = "1.3.0" diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 18fa2a4cd802..5e173f3f704d 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -18063,6 +18063,14 @@ + + + + + + + + diff --git a/scripts/analysis/detectWrongSettings.sh b/scripts/analysis/detectWrongSettings.sh index c3c6aef62a41..c8cfbf2ea52c 100755 --- a/scripts/analysis/detectWrongSettings.sh +++ b/scripts/analysis/detectWrongSettings.sh @@ -6,12 +6,20 @@ snapshotCount=$(./gradlew dependencies | grep SNAPSHOT -c) betaCount=$(grep "true" app/src/main/res/values/setup.xml -c) -libraryHash=$(grep androidLibraryVersion build.gradle | cut -d= -f2 | tr -d \") + +# Read androidLibraryVersion from TOML +libraryHash=$(grep 'androidLibraryVersion' gradle/libs.versions.toml \ + | cut -d '=' -f2 \ + | tr -d ' "' ) baseBranch="master" -lastHashes=$(curl "https://api.github.com/repos/nextcloud/android-library/commits?sha=$baseBranch" | jq ".[] .sha" | head -n 20) -if [[ $(echo "$lastHashes" | grep -c $libraryHash) -ne 1 ]]; then +# Fetch last 10 commit SHAs from GitHub, without quotes +lastHashes=$(curl -s "https://api.github.com/repos/nextcloud/android-library/commits?sha=$baseBranch" \ + | jq -r '.[].sha' | head -n 10) + +# Check if libraryHash is in lastHashes +if ! echo "$lastHashes" | grep -q "^$libraryHash$"; then echo "Library commit not within last 10 hashes, please rebase!" exit 1 fi @@ -20,10 +28,10 @@ if [[ $snapshotCount -gt 0 ]] ; then echo "Snapshot found in dependencies" exit 1 fi + if [[ $betaCount -gt 0 ]] ; then echo "Beta is set in setup.xml" exit 1 fi - -exit 0 +exit 0 diff --git a/scripts/checkIfRunDrone.sh b/scripts/checkIfRunDrone.sh index 12b1f0c32fa1..a37ffd79eaa5 100755 --- a/scripts/checkIfRunDrone.sh +++ b/scripts/checkIfRunDrone.sh @@ -12,7 +12,7 @@ if [ -z "$PR_NUMBER" ] ; then fi export BRANCH=$(scripts/analysis/getBranchBase.sh "$PR_NUMBER" | sed 's/"//g') -if [ "$(git diff --name-only "origin/$BRANCH" | grep -cE "^app/src|screenshots|build.gradle|.drone.yml|gradle")" -eq 0 ] ; then +if [ "$(git diff --name-only "origin/$BRANCH" | grep -cE "^app/src|screenshots|build.gradle.kts|.drone.yml|gradle")" -eq 0 ] ; then echo "No source files changed" exit 1 else