2013-05-08 109 views
3

我已經建立了一個Teamcity服務器,以便開始使用持續集成並且每天都有構建以及檢測到VCS簽入時。我和我的團隊正在開發視頻遊戲,我們使用Unity作爲遊戲引擎,C#作爲編程語言。我在我們的項目中手動使用了Gendarme,並可以完全利用它提供的好處。所以我試圖讓它作爲TeamCity的構建步驟運行,但我似乎想出瞭如何使其工作。有人對這種工具組合有一些看法嗎?任何分享的經驗都是有好處的。如何在構建時將Gendarme設置爲使用Teamcity運行?

謝謝。

+0

你有特定的錯誤,記錄您可以提供 – Iain 2013-05-08 13:52:11

+0

你目前正在使用對終端運行憲兵命令行是什麼? – giacomelli 2013-05-08 14:42:47

+0

感謝您的評論;至於我有沒有一個埃羅的消息,我只是不知道如何使它的工作,我的意思是發送給執行憲兵作爲的TeamCity的生成步驟。我沒有在終端拼命地跑憲兵,我剛纔已經熟悉的軟件,我用wizrd來檢查我的項目的組件和開始尋找有關使用它作爲的TeamCity的構建步驟,但什麼也沒找到關於它和我的盲目嘗試一直沒有成功。 – Jorge 2013-05-08 15:29:01

回答

2

好吧,最後我確實找到了一個解決方案,我在這裏發佈它,這樣任何感興趣的人都可以看到它。

Teamcity有一個命令行構建步驟,可用於將Gendarme用作構建過程的一部分(對於我要在構建步驟的Workspace屬性中編寫的自定義腳本,您需要將每個這個.exe的是)。這是需要它的控制檯命令:

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.exe -batchmode -nographics -quit 

這將使統一重新生成庫文件夾的內容,之後運行憲兵構建步驟會做trcik。最後,憲兵有時會拋出一個1退出代碼,因爲它完成了報告,但報告中都獲得了成功,每個規則檢查還,所以我覺得這可能是一個小錯誤,根據憲兵的manpages返回此代碼時

跑壘員執行成功,但有一些缺陷 發現或沒有指定程序集。

如果組件被檢查correctky,因爲你有步驟重新生成它們,那麼你可以告訴TeamCity的忽略退出代碼1,你可以做到這一點去的構建失敗的TeamCity的 條件並取消選中選項構建進程退出代碼是不爲零,這一切。

希望這可以幫助其他人也對這樣的事情感興趣。

相關問題