TeamCity: как запустить Build Chain с разными ветками?
У меня есть предполагаемый пайплайн в TeamCity:
Сборка Dev\
> Доставка
Сборка RC /
Реализация такого пайплайна дело простое, но усложняется она тем, что Dev должна собираться из ветки develop, а RC - из ветки release
Я пытался проводить кучу манипуляций:
- Сборка одтельно
DevиRCв разных ветках - Сборка в Composite Build и без
- Только Artifact зависимость (без Build Chain)
- Различные вариации VCS roots
- Тригерил сборку как с конца пайплайна, так и с каждой сборки отдельно
Всегда идёт цепочка только в одной ветке.
Кто нибудь строил такие цепи с разными ветками? Есть идеи?
P.S. Почему я думаю, что это возможно? Потому что я видел это ни раз на скриншотах =))
Мой DSL:
object Schedule : BuildType({
name = "Schedule"
type = Type.COMPOSITE
vcs {
root(ReadVCS)
branchFilter = """
-:*
+:refs/heads/develop
+:refs/heads/release
""".trimIndent()
}
dependencies {
dependency(Dev) {
snapshot {}
artifacts {
buildRule = sameChainOrLastFinished()
artifactRules = "*.apk"
}
}
dependency(RC) {
snapshot {}
artifacts {
buildRule = sameChainOrLastFinished()
artifactRules = "*.apk"
}
}
}
})
object Dev : BuildType({
name = "Dev"
artifactRules = "*.apk"
vcs {
root(ReadVCS)
branchFilter = """
+:refs/heads/develop
""".trimIndent()
}
steps {
...
}
})
object RC : BuildType({
name = "RC"
artifactRules = "*.apk"
vcs {
root(ReadVCS)
branchFilter = """
+:refs/heads/release
""".trimIndent()
}
steps {
...
}
})
object Deploy : BuildType({
name = "Deploy"
artifactRules = "*.apk=>deploy.zip"
vcs {
root(ReadVCS)
branchFilter = """
-:*
+:refs/heads/develop
+:refs/heads/release
""".trimIndent()
}
steps {
...
}
dependencies {
snapshot(Schedule){
synchronizeRevisions = false
}
artifacts(Dev) {
buildRule = sameChainOrLastFinished()
artifactRules = "*.apk"
}
artifacts(RC) {
buildRule = sameChainOrLastFinished()
artifactRules = "*.apk"
}
}
})