我正在整合BitBucket
,TeamCity
和SonarQube
。我的情况如下:
TeamCity
开始自动构建PR; TeamCity
使用SonarQube
通过SonarQube Runner将分析结果发布到-Dsonar.branch.name=%teamcity.build.branch%
; BitBucket
通过分支名称从SonarQube
请求分析详细信息,并将其显示在PR页面上。所以问题是我无法推断PR所基于的分支的名称。这是发生了什么:
TeamCity
配置为侦听+:refs/pull-requests/*/from
分支规范中的VCS
参考; TeamCity
发现新PR时,它将开始构建teamcity.build.branch
)的名称等于PR的编号(由于引用中的星号); BitBucket
无法通过PR的分支名称检索分析详细信息,因为它们以等于PR的编号而不是分支名称的名称存储在SonarQube
中。 / li>
解决方案1(动态参数):
SonarQube
。解决方案2:
+:refs/pull-requests/*/from
和+:refs/heads/*
; VCS
触发器,使其仅监听+:refs/heads/*
; 这似乎不是一个好的解决方案。
所以在我看来,解决方案应该类似于:
SonarQube
Runner(-Dsonar.branch.name=%dynamic.branch...%
)我阅读了documentation about TeamCity predefined branch parameters,但没有发现任何帮助。
请帮助我弄清楚如何配置它。
答案 0 :(得分:1)
通过在构建脚本中使用专用的服务消息,可以从构建步骤动态更新构建权限的构建参数(这些参数需要在构建配置的“参数”部分中定义)。
Build Script Interaction with TeamCity
echo ##teamcity[setParameter name='ddd' value='fff']
P.S。 echo
是强制性的
答案 1 :(得分:0)
配置参数(无前缀)
Write-Host "##teamcity[setParameter name='ParameterName' value='NewValue']"
环境变量(由 env. 前缀定义)
Write-Host "##teamcity[setParameter name='env.ParameterName' value='NewValue']"
系统属性(由system.前缀定义)
Write-Host "##teamcity[setParameter name='system.ParameterName' value='NewValue']"
例如