jetbrains.buildServer.configs.kotlin.v2017_2 / Project / <init>

<init>

Project(init: Project.() -> Unit)

Creates a project and initializes it with the specified init block

Parameters

init - initialization block

See Also

Project

Project()

Represents TeamCity project.

The uuid, id, and name are mandatory properties for a valid project.

The parentId property defines a place for this project in a project hierarchy, it should be empty for the Root project on the server, and non-empty for other projects.

To appear in UI project should be either registered via the project call in the .teamcity/{Project id}/settings.kts or added as a subproject to a registered project via the subProject() method.

BuildTypes, templates, and vcsRoots can be registered in the project using the buildType, template, and vcsRoot methods accordingly. BuildTypes and subprojects order can be specified via the buildTypesOrder and subProjectsOrder methods.

Project parameters are defined inside the params block.

The cleanup tab in the project admin UI contains clean-up rules for the project itself, its subprojects, and build configurations. In DSL the cleanup block in the project defines the clean-up rules for the project itself, subprojects and buildTypes can define their own clean-up rules or inherit them from the parent project(default).

Other tabs in the project admin UI are either not stored in VCS (e.g. SSH keys), or are defined as project features in the features block.

//A minimal valid project:

val parentProjectId = "ParentProjectId"
Project({
    uuid = "3dd8b78d-e71c-4065-8ce7-09d6d154c99a"
    parentId = parentProjectId
    id = "Integration Tests".toId(parentProjectId)
    name = "Integration Tests"
})
//A project with build configurations:

val parentProjectId = "ParentProjectId"
val projectId = "Integration Tests".toId(parentProjectId)

val linux = BuildType().apply {
    uuid = "fe255589-595a-4c2d-8c3f-6aa616441f9c"
    id = "Linux".toId(projectId)
    name = "Linux"
}

val windows = BuildType().apply {
    uuid = "a8678e4d-5621-4ea5-8a3a-c9c46704e990"
    id = "Windows".toId(projectId)
    name = "Windows"
}

Project({
    uuid = "3dd8b78d-e71c-4065-8ce7-09d6d154c99a"
    parentId = parentProjectId
    id = projectId
    name = "Tests"

    buildType(linux)
    buildType(windows)
})
//A project with subprojects:

val parentProjectId = "ParentProjectId"
val projectId = "Tests".toId(parentProjectId)

val subProject = Project({
    uuid = "3dd8b78d-e71c-4065-8ce7-09d6d154c99b"
    parentId = projectId
    id = "Slow Tests".toId(projectId)
    name = "Slow Tests"
})

Project({
    uuid = "3dd8b78d-e71c-4065-8ce7-09d6d154c99a"
    parentId = parentProjectId
    id = projectId
    name = "Tests"

    subProject(subProject)

    //add a subproject without defining it as a variable
    subProject {
        uuid = "3dd8b78d-e71c-4065-8ce7-09d6d154c99c"
        parentId = projectId
        id = "Fast Tests".toId(projectId)
        name = "Fast Tests"
    }
})

See Also

BuildType

Template

VcsRoot