如何在持续集成中生成 TFS(Team Foundation Server)构建结束时运行 sonar-runner 的命令?
信息:TFS 2013、Windows Server 2008 R2、sonar-runner 2.3
在构建过程中执行任意命令的唯一方法是将 InvokeProcess 活动添加到 BuildProcessTemplate。这并不像乍看起来那么困难。
复制位于团队项目的 /BuildProcessTemplates 文件夹中的 DefaultTemplate.xaml。将其命名为任何您想要的名称 - SonarRunnerTemplate.xaml 或其他名称。
在 Visual Studio 中打开新模板
点击右上角的“全部折叠”可以轻松导航到正确的活动。
浏览至Process
> Sequence
> Run On Agent
> Try Compule, Test, and Associate Changesets and Work Items
> 在Finally
条款>Revert Workspace and Copy Files
> If DropBuild And DropLocation is Set
在“然后”框中您将看到Copy Files to Drop Location
活动。暂时将其移至“其他”框中。
Add a Sequence
活动从工具箱进入(现在是空的)然后框
移动Copy Files to Drop Location
(我们之前将其移回)回到您刚刚添加到“然后”框中的“序列”活动。
Add a InvokeProcess
从工具箱运行的活动AFTER“将文件复制到放置位置”活动
打开特性对于 InvokeProcess 活动。这FileName
字段是您需要执行的命令。在本例中,是执行声纳运行程序的命令。最简单的方法可能是编写运行 Sonar 的批处理或 powershell 脚本...然后调用它。
保存构建过程模板并将其添加到 TFS。那么你可以使用此模板进行构建定义.
这种方法的一个问题是,直到 InvokeProcess 命令返回后,构建才会“完成”。因此,如果您的声纳运行需要很长时间(我知道我见过大型代码库需要超过 24 小时),则构建将永远需要完成。这可以通过让脚本异步生成 Sonar 进程来缓解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)