执行构建时选择多个分支

Posted

技术标签:

【中文标题】执行构建时选择多个分支【英文标题】:Choose multiple branches when performing a build 【发布时间】:2015-03-09 13:42:56 【问题描述】:

我们将多层产品拆分为不同的构建配置,以实现持续集成。为了这个问题,假设我们有一个“前端 CI”构建和一个“API CI”构建。 VCS 根配置为拉入所有分支,并在签入时触发运行,正如 CI 所预期的那样。

现在我有了我的用户接受项目,我使用 CloudFormation 动态启动我部署到的服务器。我为上面提到的 CI 构建设置了快照依赖项,并且对于每个 VCS 根和依赖项上的默认分支,一切都按预期工作。我希望前端的功能分支不一定需要从默认的 API 分支,而我目前的设置方式也说明了这一点。

这就是我开始遇到问题的地方。如果我必须同时分支前端和 API,我无法让 TeamCity 在这方面做我想做的事。我的问题是:我如何告诉 Team City 使用前端 CI 构建配置中的分支“A”和 API CI 构建配置中的分支“B”运行 UA 构建,其中“A”和“B”可以是任意分支吗?目前,当我查看 UA 构建配置时,会显示两个快照中的所有分支。这是一张好照片:

如果我运行 api-branch,它将始终使用前端 CI 快照中的默认分支。前端快照上的任何分支都一样。我似乎找不到在配置中或开始构建时指定它的方法。

我愿意做任何事情来解决这个问题,包括构建配置,这些配置只是相互克隆,以按照它们的意图指定分支,但我只是不知道我怎么能做到这一点.谢谢!

【问题讨论】:

【参考方案1】:

    创建一个 teamcity 模板目标,该目标监控前端和 API 存储库并可以触发更改。这应该是一个目标(而不是两个不同的目标)。参数化分支名称,以便实际目标必须给出分支名称

    我建议在数据存储 (file,db,nosql) 中创建 frontend:api 分支的映射。然后为每个新的/修改的组合动态创建 teamcity 目标(通过 REST API)并显式设置分支名称。创建目标后,只要有任何更改,它们就会自动运行。

【讨论】:

以上是关于执行构建时选择多个分支的主要内容,如果未能解决你的问题,请参考以下文章

具有多个部署的单个 Jenkins 作业

jenkins实现手动选择分支构建项目

选择要在 Jenkins 中构建的分支

为 TeamCity 构建选择 Git 分支

流程控制——判断,选择,循环。

labview条件结构的分支选择器的问题