我已经设置了一个Teamcity服务器,用于开始使用Continous Integration并进行每日构建,也可以在检测到VCS签入时使用。我和我的团队现在正在开发一款视频游戏,我们使用Unity作为游戏引擎,使用C#作为编程语言。我已经在我们的项目中手动使用了Gendarme,并且可以完全使用它提供的好处。所以我试图让它作为Teamcity的一个构建步骤来运行,但我似乎可以弄清楚如何让它工作。有没有人对这种工具组合有一定的经验?分享的任何经验都是值得欣赏的。
谢谢。
发布于 2013-05-17 04:08:20
好吧,最终我找到了一个解决方案,我把它贴在这里,让任何感兴趣的人都能看到。
Teamcity有一个命令行构建步骤,可用于使用Gendarme作为构建过程的一部分(对于我将在此处编写的自定义脚本,您需要将每个.exe放在构建步骤的Workspace属性中)。以下是它所需的控制台命令:
gendarme.exe --v --html Your\Path\To\Save\Report\GendarmeReport.html --severity all --confidence all "Path/To/Your/Project/Library/ScriptAssemblies/Assembly-CSharp.dll" "Path/To/Your/Project/Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll" "Path/To/Your/Project/Library/ScriptAssemblies/Assembly-UnityScript-firstpass.dll"
如果您在Unity build之后运行此构建步骤,则Unity将擦除此处的Assemblies,因此您需要在Gendarme步骤之前执行另一个控制台命令build步骤:
Unity.exe -batchmode -nographics -quit这将使unity重新生成库文件夹内容,然后运行Gendarme构建步骤将执行trcik。最后,Gendarme有时会在完成报告时抛出1退出代码,但报告已经成功,而且每个规则检查也都成功,所以我认为这可能是一个小错误,根据Gendarme的manpages,当
运行器执行成功,但发现了某些缺陷或未指定程序集。
希望这对其他对此感兴趣的人有所帮助。
https://stackoverflow.com/questions/16442111
复制相似问题