在官方文档中,我找到了如何通过API触发新构建并在TeamCity中指定注释,属性但不指定分支名称。当合并请求被标记为版本时,我的想法是从GitLab触发标记分支的新构建(我在配置中使用标记作为分支)。在TeamCity中,我将排除规则添加到分支规范( - :refs / merge-requests / *),因为我不想构建每个合并请求,因为我们通常也为其他分支提供了很多。此规则还适用于最近为master和tagged创建的合并请求。因此,我没有标记合并请求的构建。
我想从GitLab触发新版本(在检测到新标记时添加webhook),但不知道是否可以指定要使用的分支?
谢谢。
答案 0 :(得分:1)
branchName="v1.26.1"
(因为我使用标记作为分支特征,我指定了标记名称)属性应添加到XML请求中的<build>
标记。
以下是Powershell中如何在TeamCity中为特定标记/分支触发新构建的示例:
$Username = '!username!'
$Password = '!password!'
$BuildTypeId = '!build type id from teamcity!'
$Pair = "$($Username):$($Password)"
$EncodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Pair))
$Headers = @{
Authorization = "Basic $EncodedCredentials";
Accept = "application/json"
}
$Body = '<build branchName="v1.26.1"><buildType id="#{buildTypeId}"/><comment><text>Build was triggered by GitLab.</text></comment><properties /></build>' -Replace "#{buildTypeId}", $BuildTypeId
Invoke-WebRequest -Uri 'http://teamcity.host/httpAuth/app/rest/buildQueue' -Method POST -Body $Body -UseBasicParsing -Headers $Headers -ContentType "application/xml"