使用TeamCity和Github构建对特定分支的拉取请求

Dmi*_*sev 17 teamcity github

我希望TeamCity构建对特定目标分支的所有拉取请求,例如develop.
所以,我想建立以下拉取请求:

develop...foo_branch
develop...bar_branch
Run Code Online (Sandbox Code Playgroud)

并跳过这个:

master...foo_branch
master...bar_branch
Run Code Online (Sandbox Code Playgroud)

在TeamCity中,我可以定义branch specification构建所有拉取请求:

+:refs/pull/*/head
Run Code Online (Sandbox Code Playgroud)

或按源分支定义过滤器:

-:refs/heads/(spikes-*)
Run Code Online (Sandbox Code Playgroud)

但我需要按目标分支过滤.可能吗?

Zmi*_*nka 7

我写了一个脚本来解决这个问题.它可以作为TC构建配置中的第一个构建步骤之一运行.该脚本将从Github请求拉取请求详细信息,解析响应并将源和目标分支名称注入TeamCity参数和环境变量.在下一个构建步骤中,您将能够根据这些变量中止构建或执行您需要的任何其他操作.

https://gist.github.com/dzzh/a6d8631e9617777fb5237bc9ec7b356b

要使脚本起作用,您必须将PR的id作为命令行参数提交.我们使用推荐的refspec(refs/pulls/*/head)来运行我们的构建,我从中提取PR id并用它调用脚本.


Ali*_*ina 4

目前无法根据 TeamCity 中的目标分支区分拉取请求分支。请观看/投票请求https://youtrack.jetbrains.com/issue/TW-43759,该请求计划在即将发布的版本中发布。