@@ -23,13 +23,60 @@ private fun BuildType.additionalParams(): BuildType = apply {
2323 }
2424}
2525
26- private fun BuildSteps.downloadAndroidSdk () = script {
26+ data class AndroidSdk (
27+ val compileSdk : String ,
28+ val buildTools : String ,
29+ val cmdToolsVersion : String ,
30+ )
31+
32+ // Download Android SDK
33+ // https://code.jetbrains.team/p/ui/repositories/compose-teamcity-config/files/main/.teamcity/compose/scripts/downloadAndroidSdk.sh
34+ private fun BuildSteps.downloadAndroidSdk (androidSdk : AndroidSdk ) = script {
2735 name = " Download Android SDK"
2836 // language=bash
2937 scriptContent = """
3038 #!/bin/bash
3139 set -euo pipefail
32- ./jbdeps/android-sdk/downloadAndroidSdk
40+
41+ ANDROID_COMPILE_SDK=${androidSdk.compileSdk}
42+ ANDROID_BUILD_TOOLS=${androidSdk.buildTools}
43+ ANDROID_CMD_TOOLS_VERSION=${androidSdk.cmdToolsVersion}
44+
45+ downloadLinuxSDK() {
46+ curl --silent --show-error -o commandlinetools-linux.zip https://dl.google.com/android/repository/commandlinetools-linux-${' $' } {ANDROID_CMD_TOOLS_VERSION}_latest.zip
47+ unzip -o -d android-sdk-linux commandlinetools-linux.zip
48+ rm commandlinetools-linux.zip
49+ echo y | "android-sdk-linux/cmdline-tools/bin/sdkmanager" --sdk_root=android-sdk-linux "platform-tools" "platforms;android-${' $' } ANDROID_COMPILE_SDK" "build-tools;${' $' } ANDROID_BUILD_TOOLS"
50+ echo y | "android-sdk-linux/cmdline-tools/bin/sdkmanager" --sdk_root=android-sdk-linux --licenses > /dev/null
51+ export ANDROID_HOME=${' $' } PWD/android-sdk-linux
52+ }
53+
54+ downloadMacOsSDK() {
55+ curl --silent --show-error -o commandlinetools-mac.zip https://dl.google.com/android/repository/commandlinetools-mac-${' $' } {ANDROID_CMD_TOOLS_VERSION}_latest.zip
56+ unzip -o -d android-sdk-darwin commandlinetools-mac.zip
57+ rm commandlinetools-mac.zip
58+ echo y | "android-sdk-darwin/cmdline-tools/bin/sdkmanager" --sdk_root=android-sdk-darwin "platform-tools" "platforms;android-${' $' } ANDROID_COMPILE_SDK" "build-tools;${' $' } ANDROID_BUILD_TOOLS"
59+ echo y | "android-sdk-darwin/cmdline-tools/bin/sdkmanager" --sdk_root=android-sdk-darwin --licenses > /dev/null
60+ export ANDROID_HOME=${' $' } PWD/android-sdk-darwin
61+ }
62+
63+ if [[ "${' $' } OSTYPE" == "linux-gnu"* ]]; then
64+ downloadLinuxSDK
65+ elif [[ "${' $' } OSTYPE" == "darwin"* ]]; then
66+ downloadMacOsSDK
67+ elif [[ "${' $' } OSTYPE" == "cygwin" ]]; then
68+ echo "Please download Android SDK manually (https://developer.android.com/studio)"
69+ elif [[ "${' $' } OSTYPE" == "msys" ]]; then
70+ echo "Please download Android SDK manually (https://developer.android.com/studio)"
71+ elif [[ "${' $' } OSTYPE" == "win32" ]]; then
72+ echo "Please download Android SDK manually (https://developer.android.com/studio)"
73+ else
74+ echo "Unknown OS"
75+ fi
76+
77+ # Export ANDROID_HOME as for other build steps
78+ echo "ANDROID_HOME=${' $' } ANDROID_HOME"
79+ echo "##teamcity[setParameter name='env.ANDROID_HOME' value='${' $' } ANDROID_HOME']"
3380 """ .trimIndent()
3481 formatStderrAsError = true
3582}
@@ -51,15 +98,15 @@ class ComposeMultiplatformCore(init: ComposeMultiplatformCore.() -> Unit) : Refe
5198 }
5299 }
53100
54- fun addVersion (version : String , tagOrBranch : String ) = addReference(version) {
101+ fun addVersion (version : String , tagOrBranch : String , androidSdk : AndroidSdk ) = addReference(version) {
55102 apiReference(
56103 version,
57104 gitUrl = " git@github.com:JetBrains/compose-multiplatform-core.git" ,
58105 gitBranch = tagOrBranch,
59106 templateDir = " mpp/apiReferences/dokka-templates" ,
60107 pagesDir = " out/androidx/mpp/apiReferences/build/dokka/html" ,
61108 steps = {
62- downloadAndroidSdk()
109+ downloadAndroidSdk(androidSdk )
63110 dokkaBuildHtml(version) {
64111 tasks = " :mpp:apiReferences:buildApiReferencesWithStories"
65112 gradleParams + = " -PapiReferences.storiesRootPath=/api/${urlPart} /stories"
0 commit comments