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"
        }
    }
})

Ответы (0 шт):