Provide Android SDK with accepted licenses

For benchmarks using Android provide Android SDK via environment.

^KT-49921 In Progress
This commit is contained in:
Yahor Berdnikau
2021-12-23 11:03:13 +01:00
parent 10a1d2ca1d
commit 6c02ef0a44
@@ -50,7 +50,8 @@ abstract class ScriptArgumentProvider @Inject constructor(
fun addBenchmarkTask(
taskName: String,
script: String,
jdkVersion: JavaLanguageVersion = JavaLanguageVersion.of(8)
jdkVersion: JavaLanguageVersion = JavaLanguageVersion.of(8),
additionalConfiguration: JavaExec.() -> Unit = {}
): TaskProvider<JavaExec> {
return tasks.register<JavaExec>(taskName) {
group = "Gradle Regression Benchmark"
@@ -68,6 +69,57 @@ fun addBenchmarkTask(
scriptArgs.script.set(script)
scriptArgs.scriptClasspath.from(scriptsClasspath)
argumentProviders.add(scriptArgs)
additionalConfiguration()
}
}
val acceptAndroidSdkLicenses = tasks.register("acceptAndroidSdkLicenses") {
useAndroidSdk()
doLast {
val androidSdk = configurations["androidSdk"].singleFile
val sdkLicensesDir = androidSdk.resolve("licenses").also {
if (!it.exists()) it.mkdirs()
}
val sdkLicenses = listOf(
"8933bad161af4178b1185d1a37fbf41ea5269c55",
"d56f5187479451eabf01fb78af6dfcb131a6481e",
"24333f8a63b6825ea9c5514f83c2829b004d1fee",
)
val sdkPreviewLicense = "84831b9409646a918e30573bab4c9c91346d8abd"
val sdkLicenseFile = sdkLicensesDir.resolve("android-sdk-license")
if (!sdkLicenseFile.exists()) {
sdkLicenseFile.createNewFile()
sdkLicenseFile.writeText(
sdkLicenses.joinToString(separator = "\n")
)
} else {
sdkLicenses
.subtract(
sdkLicenseFile.readText().lines()
)
.forEach {
sdkLicenseFile.appendText("$it\n")
}
}
val sdkPreviewLicenseFile = sdkLicensesDir.resolve("android-sdk-preview-license")
if (!sdkPreviewLicenseFile.exists()) {
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
} else {
if (sdkPreviewLicense != sdkPreviewLicenseFile.readText().trim()) {
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
}
}
}
}
fun JavaExec.usesAndroidSdk() {
dependsOn(acceptAndroidSdkLicenses)
doFirst {
environment("ANDROID_SDK_ROOT", configurations["androidSdk"].singleFile.canonicalPath)
}
}
@@ -75,4 +127,6 @@ addBenchmarkTask(
taskName = "benchmarkRegressionDuckduckgo",
script = "duckduckgo.benchmark.kts",
JavaLanguageVersion.of(11)
)
) {
usesAndroidSdk()
}