Child pages
  • Indore 10 EAP2 (build 41463) Release Notes

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  • each time when you make a commit into .teamcity, TeamCity will execute Kotlin DSL files. Since internally, TeamCity still operates with XML, executed DSL files will produce a bunch of XML files. These XML files then will be applied to existing project effectively changing its configuration. In case of any problems (compilation failures, runtime errors, etc), new changes will not be applied, and current project settings will be preserved on the server.
  • once project is switched to Kotlin, project settings web UI will become disabled (except a few pages: Versioned settings, Maven Settings, SSH keys and Meta-runners), because currently there is no way to propagate changes made via web UI to Kotlin DSL files.
  • Kotlin script is executed on the server, and since this is a potentially dangerous operation, the script is executed in sandbox. It cannot modify file system except the place where it is executed, cannot run other programs, cannot use reflection, and so on.

Examples of a Project defined in Kotlin DSL:

Code Block
object Project : KProject({
    uuid = "my_project_id"
    parentId = "_Root"
    name = "Example of DSL"

    val vcsRoot = vcsRoot (KVcsRoot({
        uuid = "my_vcs_root_id"
        extId = "ExampleOfDSL_VcsRoot"
        type = "jetbrains.git"
        name = "Example of DSL VCS Root"
        param("url", "<url to my git repository>")

    buildType (KBuildType ({
        uuid = "my_build_type_id"
        extId = "ExampleOfDSL_Build"
        name = "Build"

        vcs {

        steps {
             step {
                  type = "Maven2"
                  param("goals", "clean test")

        options {
             buildNumberPattern = "%build.counter%"

        requirements {
             contains("", "Linux")

Smart checking for changes interval