diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index c52cdd94..6cd6b59e 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -40,6 +40,11 @@ runs: path: ~/.gradle/caches key: gradle-v2-${{ hashFiles('**/*.gradle*', '**/gradle.properties', 'gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }} restore-keys: gradle-v2- + - uses: actions/cache@v6 + with: + path: ~/.m2/repository/org/robolectric + key: robolectric-m2-v1-${{ hashFiles('gradle/libs.versions.toml', 'app/src/test/resources/robolectric.properties') }} + restore-keys: robolectric-m2-v1- - id: signing if: inputs.sign == 'true' shell: bash diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4411b117..916d4dac 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -181,6 +181,8 @@ val demoScreenshotClass = "com.subtracks.ui.DemoScreenshotTest" val queryTimingClass = "com.subtracks.data.db.QueryTimingMeasurementTest" tasks.withType().configureEach { + // Robolectric fetches its Android SDK jar itself, outside Gradle's repositories. + systemProperty("robolectric.dependency.repo.url", providers.gradleProperty("mavenCentralMirrorUrl").get()) if (name.endsWith("UnitTest")) { filter { (integrationTestClasses + demoScreenshotClass + queryTimingClass).forEach { excludeTestsMatching(it) } diff --git a/gradle.properties b/gradle.properties index 889e554e..507ee849 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,3 +9,5 @@ android.useAndroidX=true android.nonTransitiveRClass=true kotlin.code.style=official + +mavenCentralMirrorUrl=https://maven-central.storage-download.googleapis.com/maven2/ diff --git a/settings.gradle.kts b/settings.gradle.kts index 5ff0b01d..ff7949bc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,5 @@ pluginManagement { + val mavenCentralMirrorUrl = providers.gradleProperty("mavenCentralMirrorUrl").get() repositories { google { content { @@ -7,7 +8,7 @@ pluginManagement { includeGroupByRegex("androidx.*") } } - maven("https://maven-central.storage-download.googleapis.com/maven2/") { + maven(mavenCentralMirrorUrl) { name = "MavenCentralMirror" } mavenCentral() @@ -19,7 +20,7 @@ dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() - maven("https://maven-central.storage-download.googleapis.com/maven2/") { + maven(providers.gradleProperty("mavenCentralMirrorUrl").get()) { name = "MavenCentralMirror" } mavenCentral()