in teamcity-rest-client-impl/src/main/kotlin/org/jetbrains/teamcity/rest/coroutines/implementation.kt [1411:1462]
override suspend fun runBuild(
parameters: Map<String, String>?,
queueAtTop: Boolean,
cleanSources: Boolean?,
rebuildAllDependencies: Boolean,
comment: String?,
logicalBranchName: String?,
agentId: String?,
personal: Boolean,
revisions: List<SpecifiedRevision>?,
dependencies: List<BuildId>?
): Build {
val request = TriggerBuildRequestBean()
request.buildType = BuildTypeBean().apply { id = this@BuildConfigurationImpl.idString }
request.branchName = logicalBranchName
comment?.let { commentText -> request.comment = CommentBean().apply { text = commentText } }
request.personal = personal
request.triggeringOptions = TriggeringOptionsBean().apply {
this.cleanSources = cleanSources
this.rebuildAllDependencies = rebuildAllDependencies
this.queueAtTop = queueAtTop
}
parameters?.let { parametersMap ->
val parametersBean = ParametersBean(parametersMap.map { ParameterBean(it.key, it.value) })
request.properties = parametersBean
}
if (!agentId.isNullOrEmpty())
request.agent = BuildAgentBean().apply { id = agentId }
request.`snapshot-dependencies` = dependencies?.let { deps ->
BuildListBean().apply {
build = deps.map {
BuildBean().apply { id = it.stringId }
}
}
}
request.revisions = revisions?.let { r ->
RevisionsBean().apply {
revision = r.map {
RevisionBean().apply {
version = it.version
vcsBranchName = it.vcsBranchName
`vcs-root-instance` = VcsRootInstanceBean().apply {
`vcs-root-id` = it.vcsRootId.stringId
}
}
}
}
}
val triggeredBuildBean = instance.service.triggerBuild(request)
return instance.build(BuildId(triggeredBuildBean.id!!.toString()))
}