如何在Jenkins的SonarScanner的“项目版本”字段中正确获取TFS变更集编号?

时间:2019-05-31 09:56:46

标签: jenkins sonarqube tfvc sonarscanner

我们正在将Jenkins作为构建服务器。我们在构建之前将SonarScanner用于MSBuild步骤,可以填充的字段之一是“项目版本”。此字段中的值将用版本标记声纳分析。

enter image description here

我尝试了以下值:

  • $TFS_CHANGESET
  • ${TFS_CHANGESET}
  • ${ENV,var="TFS_CHANGESET"}

但是不幸的是,我只是得到了所输入的文字文本,而不是对环境变量的求值。

是否有一种方法可以评估实际的环境变量,并使用它的值代替? sonarqube扫描仪文档似乎没有提供有关如何使用环境变量的信息,并且我已阅读的各种文章(导致我尝试过的值)似乎也不起作用!

enter image description here

参考: https://community.sonarsource.com/t/expand-environment-variables-in-sonarqube-scanner-for-jenkins/4711

1 个答案:

答案 0 :(得分:1)

  

如何在Jenkins的SonarScanner的“项目版本”字段中正确获取TFS变更集编号?

如果您通过使用“源代码管理”选项卡使用默认方式从Azure DevOps Server下载代码,则似乎我们无法将其配置为按特定变更集编号下载源代码。

要解决此问题,您可以使用Windows批处理命令来获取最新的源代码:

%TFS% workspaces -format:brief -server:{your-tfs-team-project-collection-url}
%TFS% workspace -new Hudson-%JOB_NAME%-MASTER;{your-domain-user-name} -noprompt -server:{your-tfs-team-project-collection-url}
%TFS% workfold -map $/{tfs-path-to-your-sln} C:\Jenkins\jobs\%JOB_NAME%\workspace\ -workspace:Hudson-%JOB_NAME%-MASTER -server:{your-tfs-team-project-collection-url}
%TFS% get $/{tfs-path-to-your-sln} -force -recursive -noprompt
%TFS% history $/{tfs-path-to-your-sln} -recursive -stopafter:1 -noprompt -format:brief -server:{your-tfs-team-project-collection-url}

请检查文档Jenkins: Get Source Code By Specific TFS Changeset以获得更多详细信息。

希望这会有所帮助。