From 73fa80bab81d1ef230a60a9218632c53a7b44d66 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Sat, 25 Apr 2026 02:02:02 +0300 Subject: [PATCH] Provisioning: expand Android gradle cache project Add an :app and :lib modules so both com.android.application and com.android.library paths are exercised, and add a Kotlin source + JUnit test in each module. This makes gradlew build pull the kotlin toolchain jars (compiler-embeddable, reflect, coroutines) that Qt Android JAR and app builds could need later. This way we ensure all possible artifacts are made available in the cache during provisioning and avoid or at least reduce the chances or later downloads. Task-number: QTBUG-132915 Change-Id: Ic518f96370ffc40f921bcb3063257f8663e41615 Reviewed-by: Alexandru Croitor --- coin/provisioning/common/linux/gradle.sh | 4 ++-- coin/provisioning/common/macos/gradle.sh | 4 ++-- .../shared/gradle/project/app/build.gradle | 20 +++++++++++++++++++ .../{ => app}/src/main/AndroidManifest.xml | 0 .../org/qtproject/qt/gradlecache/app/Main.kt | 5 +++++ .../qtproject/qt/gradlecache/app/MainTest.kt | 11 ++++++++++ .../common/shared/gradle/project/build.gradle | 19 +----------------- .../gradle/project/gradle/libs.versions.toml | 4 ++-- .../shared/gradle/project/lib/build.gradle | 17 ++++++++++++++++ .../project/lib/src/main/AndroidManifest.xml | 3 +++ .../org/qtproject/qt/gradlecache/lib/Lib.kt | 5 +++++ .../qtproject/qt/gradlecache/lib/LibTest.kt | 11 ++++++++++ .../shared/gradle/project/settings.gradle | 1 + coin/provisioning/common/windows/gradle.ps1 | 4 ++-- 14 files changed, 82 insertions(+), 26 deletions(-) create mode 100644 coin/provisioning/common/shared/gradle/project/app/build.gradle rename coin/provisioning/common/shared/gradle/project/{ => app}/src/main/AndroidManifest.xml (100%) create mode 100644 coin/provisioning/common/shared/gradle/project/app/src/main/kotlin/org/qtproject/qt/gradlecache/app/Main.kt create mode 100644 coin/provisioning/common/shared/gradle/project/app/src/test/kotlin/org/qtproject/qt/gradlecache/app/MainTest.kt create mode 100644 coin/provisioning/common/shared/gradle/project/lib/build.gradle create mode 100644 coin/provisioning/common/shared/gradle/project/lib/src/main/AndroidManifest.xml create mode 100644 coin/provisioning/common/shared/gradle/project/lib/src/main/kotlin/org/qtproject/qt/gradlecache/lib/Lib.kt create mode 100644 coin/provisioning/common/shared/gradle/project/lib/src/test/kotlin/org/qtproject/qt/gradlecache/lib/LibTest.kt diff --git a/coin/provisioning/common/linux/gradle.sh b/coin/provisioning/common/linux/gradle.sh index 40e0e467..7911e783 100644 --- a/coin/provisioning/common/linux/gradle.sh +++ b/coin/provisioning/common/linux/gradle.sh @@ -10,9 +10,9 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh" echo "Caching Gradle distribution and dependencies" -gradleCacheFileName="gradle_9.3.1_linux_cache.tar.gz" +gradleCacheFileName="gradle_9.3.1_linux_cache_v2.tar.gz" gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName" -gradleCacheSha1="b054e7366552e81023c9c240d3134967233defac" +gradleCacheSha1="e88989d55f68e978442e567e4707a6093c829af6" gradleCacheFile="/tmp/$gradleCacheFileName" DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile" mkdir -p "$HOME/.gradle" diff --git a/coin/provisioning/common/macos/gradle.sh b/coin/provisioning/common/macos/gradle.sh index c6a1030c..138813ba 100644 --- a/coin/provisioning/common/macos/gradle.sh +++ b/coin/provisioning/common/macos/gradle.sh @@ -10,9 +10,9 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh" echo "Caching Gradle distribution and dependencies" -gradleCacheFileName="gradle_9.3.1_darwin_cache.tar.gz" +gradleCacheFileName="gradle_9.3.1_darwin_cache_v2.tar.gz" gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName" -gradleCacheSha1="0009b1f55269461071b8650ee60427b66e265c4b" +gradleCacheSha1="d4f93be293224e3d55779cf64252337fbb26b53b" gradleCacheFile="/tmp/$gradleCacheFileName" DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile" mkdir -p "$HOME/.gradle" diff --git a/coin/provisioning/common/shared/gradle/project/app/build.gradle b/coin/provisioning/common/shared/gradle/project/app/build.gradle new file mode 100644 index 00000000..6cd28bc8 --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/app/build.gradle @@ -0,0 +1,20 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace = 'org.qtproject.qt.gradlecache.app' + compileSdk = 36 + + defaultConfig { + applicationId 'org.qtproject.qt.gradlecache.app' + minSdk = 28 + } +} + +dependencies { + implementation libs.core + implementation libs.appcompat + implementation libs.material + testImplementation libs.junit +} diff --git a/coin/provisioning/common/shared/gradle/project/src/main/AndroidManifest.xml b/coin/provisioning/common/shared/gradle/project/app/src/main/AndroidManifest.xml similarity index 100% rename from coin/provisioning/common/shared/gradle/project/src/main/AndroidManifest.xml rename to coin/provisioning/common/shared/gradle/project/app/src/main/AndroidManifest.xml diff --git a/coin/provisioning/common/shared/gradle/project/app/src/main/kotlin/org/qtproject/qt/gradlecache/app/Main.kt b/coin/provisioning/common/shared/gradle/project/app/src/main/kotlin/org/qtproject/qt/gradlecache/app/Main.kt new file mode 100644 index 00000000..b3b578aa --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/app/src/main/kotlin/org/qtproject/qt/gradlecache/app/Main.kt @@ -0,0 +1,5 @@ +package org.qtproject.qt.gradlecache.app + +object Main { + fun hello(): String = "hello" +} diff --git a/coin/provisioning/common/shared/gradle/project/app/src/test/kotlin/org/qtproject/qt/gradlecache/app/MainTest.kt b/coin/provisioning/common/shared/gradle/project/app/src/test/kotlin/org/qtproject/qt/gradlecache/app/MainTest.kt new file mode 100644 index 00000000..b51d6bf2 --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/app/src/test/kotlin/org/qtproject/qt/gradlecache/app/MainTest.kt @@ -0,0 +1,11 @@ +package org.qtproject.qt.gradlecache.app + +import org.junit.Assert.assertEquals +import org.junit.Test + +class MainTest { + @Test + fun hello() { + assertEquals("hello", Main.hello()) + } +} diff --git a/coin/provisioning/common/shared/gradle/project/build.gradle b/coin/provisioning/common/shared/gradle/project/build.gradle index e57f4c60..9c5ba578 100644 --- a/coin/provisioning/common/shared/gradle/project/build.gradle +++ b/coin/provisioning/common/shared/gradle/project/build.gradle @@ -1,21 +1,4 @@ plugins { - alias(libs.plugins.android.application) + alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false - alias(libs.plugins.kotlin.android) apply false -} - -android { - namespace = 'org.qtproject.qt.gradlecache' - compileSdk = 36 - - defaultConfig { - applicationId "org.qtproject.qt.gradle.cache" - minSdk = 28 - } -} - -dependencies { - implementation libs.core - implementation libs.appcompat - implementation libs.material } diff --git a/coin/provisioning/common/shared/gradle/project/gradle/libs.versions.toml b/coin/provisioning/common/shared/gradle/project/gradle/libs.versions.toml index 39f6ab36..3ce8fec0 100644 --- a/coin/provisioning/common/shared/gradle/project/gradle/libs.versions.toml +++ b/coin/provisioning/common/shared/gradle/project/gradle/libs.versions.toml @@ -1,16 +1,16 @@ [versions] agp = "9.0.0" -kotlin = "2.1.10" core = "1.17.0" appcompat = "1.7.1" material = "1.13.0" +junit = "4.13.2" [libraries] core = { group = "androidx.core", name = "core", version.ref = "core" } appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } material = { group = "com.google.android.material", name = "material", version.ref = "material" } +junit = { group = "junit", name = "junit", version.ref = "junit" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } diff --git a/coin/provisioning/common/shared/gradle/project/lib/build.gradle b/coin/provisioning/common/shared/gradle/project/lib/build.gradle new file mode 100644 index 00000000..35a550e1 --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/lib/build.gradle @@ -0,0 +1,17 @@ +plugins { + alias(libs.plugins.android.library) +} + +android { + namespace = 'org.qtproject.qt.gradlecache.lib' + compileSdk = 36 + + defaultConfig { + minSdk = 28 + } +} + +dependencies { + implementation libs.core + testImplementation libs.junit +} diff --git a/coin/provisioning/common/shared/gradle/project/lib/src/main/AndroidManifest.xml b/coin/provisioning/common/shared/gradle/project/lib/src/main/AndroidManifest.xml new file mode 100644 index 00000000..9a40236b --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/lib/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + + diff --git a/coin/provisioning/common/shared/gradle/project/lib/src/main/kotlin/org/qtproject/qt/gradlecache/lib/Lib.kt b/coin/provisioning/common/shared/gradle/project/lib/src/main/kotlin/org/qtproject/qt/gradlecache/lib/Lib.kt new file mode 100644 index 00000000..17cb5d15 --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/lib/src/main/kotlin/org/qtproject/qt/gradlecache/lib/Lib.kt @@ -0,0 +1,5 @@ +package org.qtproject.qt.gradlecache.lib + +object Lib { + fun hello(): String = "hello" +} diff --git a/coin/provisioning/common/shared/gradle/project/lib/src/test/kotlin/org/qtproject/qt/gradlecache/lib/LibTest.kt b/coin/provisioning/common/shared/gradle/project/lib/src/test/kotlin/org/qtproject/qt/gradlecache/lib/LibTest.kt new file mode 100644 index 00000000..5f19d4b1 --- /dev/null +++ b/coin/provisioning/common/shared/gradle/project/lib/src/test/kotlin/org/qtproject/qt/gradlecache/lib/LibTest.kt @@ -0,0 +1,11 @@ +package org.qtproject.qt.gradlecache.lib + +import org.junit.Assert.assertEquals +import org.junit.Test + +class LibTest { + @Test + fun hello() { + assertEquals("hello", Lib.hello()) + } +} diff --git a/coin/provisioning/common/shared/gradle/project/settings.gradle b/coin/provisioning/common/shared/gradle/project/settings.gradle index c15cea87..d1ede288 100644 --- a/coin/provisioning/common/shared/gradle/project/settings.gradle +++ b/coin/provisioning/common/shared/gradle/project/settings.gradle @@ -14,3 +14,4 @@ dependencyResolutionManagement { } rootProject.name = 'gradlecache' +include ':app', ':lib' diff --git a/coin/provisioning/common/windows/gradle.ps1 b/coin/provisioning/common/windows/gradle.ps1 index dbcab05f..af656333 100644 --- a/coin/provisioning/common/windows/gradle.ps1 +++ b/coin/provisioning/common/windows/gradle.ps1 @@ -4,10 +4,10 @@ . "$PSScriptRoot\helpers.ps1" Write-Host "Caching Gradle distribution and dependencies" -$gradleCacheFileName = "gradle_9.3.1_windows_cache.zip" +$gradleCacheFileName = "gradle_9.3.1_windows_cache_v2.zip" $gradleCacheCachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\gradle\$gradleCacheFileName" $gradleCacheOfficialUrl = $gradleCacheCachedUrl -$gradleCacheChecksum = "b657ea2b3e25f0bef7f7831a34080cd2af659f48" +$gradleCacheChecksum = "fcd653a1f4f30da9074a7aa7cfcad9219ed57d96" $gradleCacheZip = "C:\Windows\Temp\$gradleCacheFileName" Download $gradleCacheOfficialUrl $gradleCacheCachedUrl $gradleCacheZip Verify-Checksum $gradleCacheZip $gradleCacheChecksum