Я извлек свои сборки Teamcity как выходные данные Kotlin. Я хочу создать базовый класс, который определяет ряд общих шагов/настроек, но позволяет отдельным сборкам расширять эти свойства.
e.g.
open class BuildBase(init: BuildBase.() -> Unit) : BuildType({
steps {
powerShell {
name = "Write First Message"
id = "RUNNER_FirstMessage"
scriptMode = script {
content = """
Write-Host "First Message"
""".trimIndent()
}
}
}
})
object Mybuild : BuildBase({
steps { // This would add a new step to the list, without wiping out the original step
powerShell {
name = "Write Last Message"
id = "RUNNER_LastMessage"
scriptMode = script {
content = """
Write-Host "Last Message"
""".trimIndent()
}
}
}
})
В этом примере я хочу наследовать шаг от базового класса, но добавить дополнительные шаги, относящиеся к конкретной сборке. Кроме того, я хотел бы унаследовать базу disableSettings
(если есть) и отключить другие шаги.
Это вообще возможно? если да, то как мне структурировать классы, чтобы включить его?