diff --git a/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinBuildPusher.kt b/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinBuildPusher.kt index b175547dcab..3844a9a5850 100644 --- a/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinBuildPusher.kt +++ b/build-tools/src/main/kotlin/org/jetbrains/kotlin/KotlinBuildPusher.kt @@ -1,47 +1,57 @@ package org.jetbrains.kotlin -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.TaskAction import io.ktor.client.HttpClient -import io.ktor.client.call.HttpClientCall import io.ktor.client.request.get import io.ktor.client.request.header import io.ktor.client.request.post import io.ktor.content.TextContent import io.ktor.http.ContentType -import io.ktor.http.contentType import kotlinx.coroutines.runBlocking +import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.options.Option - -open class KotlinBuildPusher: DefaultTask() { - +@Suppress("UnstableApiUsage") +open class KotlinBuildPusher : DefaultTask() { @Input @Option(option = "token", description = "Teamcity Bear token") - var token:String? = "" + var token: String? = "" @Input @Option(option = "buildServer", description = "Teamcity server") - var buildServer:String = "" + var buildServer: String = "" + + @Input + @Option(option = "compilerConfigurationId", description = "Teamcity configuration id") + var compilerConfigurationId: String = "Kotlin_dev_Compiler" + + @Input + @Option(option = "overrideConfigurationId", description = "Teamcity kotlin override configuration id") + var overrideConfigurationId: String = "Kotlin_dev_DeployMavenArtifacts_OverrideNative" @Input @Option(option = "kotlinVersion", description = "Kotlin Compiler Version") - var kotlinVersion:String = "" + var kotlinVersion: String = "" @Input @Option(option = "konanVersion", description = "Kotlin Native Compiler Version") - var konanVersion:String = "" + var konanVersion: String = "" @TaskAction fun run() { - requireNotNull(token, {"Teamcity Bear token required"}) + requireNotNull(token, { "Teamcity Bear token required" }) val client = HttpClient() runBlocking { - val buildId = client.get(scheme = "https", host = buildServer, path = "/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:$kotlinVersion/id" ) { + val buildId = client.get( + scheme = "https", + host = buildServer, + path = "/app/rest/builds/buildType:(id:$compilerConfigurationId),number:$kotlinVersion/id" + ) { header("Authorization", "Bearer $token") } project.logger.info("pusher: buildId: $buildId") + /** * * @@ -53,9 +63,9 @@ open class KotlinBuildPusher: DefaultTask() { * * */ - val content = buildString{ - build{ - buildType("Kotlin_dev_DeployMavenArtifacts_OverrideNative") + val content = buildString { + build { + buildType(overrideConfigurationId) lastChanges { change(buildId) } @@ -65,7 +75,12 @@ open class KotlinBuildPusher: DefaultTask() { } } project.logger.info("pusher: content: \"$content\"") - val res = client.post(scheme = "https", host = buildServer, path = "/app/rest/buildQueue") { + + val res = client.post( + scheme = "https", + host = buildServer, + path = "/app/rest/buildQueue" + ) { header("Authorization", "Bearer $token") header("Origin", "https://$buildServer") body = TextContent(content, ContentType.Application.Xml) @@ -82,10 +97,10 @@ internal fun StringBuilder.paired(tag:String, body:StringBuilder.()->Unit) { appendln("") } -internal fun StringBuilder.build(body:StringBuilder.()->Unit) = paired("build", body) -internal fun StringBuilder.buildType(id:String) = appendln("") -internal fun StringBuilder.lastChanges(body:StringBuilder.()->Unit) = paired("lastChanges", body) -internal fun StringBuilder.change(build:String) = appendln("") -internal fun StringBuilder.properties(body:StringBuilder.()->Unit) = paired("properties", body) -internal fun StringBuilder.property(key:String, value:String) = appendln("") +internal fun StringBuilder.build(body: StringBuilder.() -> Unit) = paired("build", body) +internal fun StringBuilder.buildType(id: String) = appendln("") +internal fun StringBuilder.lastChanges(body: StringBuilder.() -> Unit) = paired("lastChanges", body) +internal fun StringBuilder.change(build: String) = appendln("") +internal fun StringBuilder.properties(body: StringBuilder.() -> Unit) = paired("properties", body) +internal fun StringBuilder.property(key: String, value: String) = appendln("") diff --git a/build.gradle b/build.gradle index 34f6be2e25d..b795c401f8b 100644 --- a/build.gradle +++ b/build.gradle @@ -630,9 +630,11 @@ task clean { } } -task pusher(type: KotlinBuildPusher){ +task pusher(type: KotlinBuildPusher){ kotlinVersion = project.kotlinVersion konanVersion = KonanVersionGeneratedKt.getCurrentKonanVersion() buildServer = "teamcity.jetbrains.com" + compilerConfigurationId = "Kotlin_dev_Compiler" + overrideConfigurationId = "Kotlin_dev_DeployMavenArtifacts_OverrideNative" token = project.findProperty("teamcityBearToken") ?: System.getenv("TEAMCITY_BEAR_TOKEN") }