2013-05-08 9 views
3

지속적인 통합 작업을 시작하고 일일 빌드 및 VCS 체크인이 감지 될 때 Teamcity 서버를 설정했습니다. 저와 저의 팀은 비디오 게임을하고 있으며 Unity를 게임 엔진으로, C#을 프로그래밍 언어로 사용하고 있습니다. 필자는 Gendarme을 프로젝트에 수동으로 사용했으며 제공하는 혜택을 전적으로 사용할 수 있습니다. 그래서 저는 Teamcity를 빌드 단계로 실행하려고 노력하고 있었지만 작동하게 만드는 방법을 알아낼 수 있습니다. 이 도구 조합으로 누군가가 만성적 인 사람이 있습니까? 공유 된 모든 경험은 평가 절하됩니다.빌드를 수행 할 때 Teamcity와 함께 Gendarme을 실행하도록 설정하는 방법은 무엇입니까?

감사합니다.

+0

제공 할 수있는 특정 오류가 있습니까? – Iain

+0

현재 터미널에서 Gendarme를 실행하는 데 사용중인 명령 줄은 무엇입니까? – giacomelli

+0

의견을 주셔서 감사합니다; 지금까지 아무런 의미가없는 에로 메시지가 있었지만, 나는 그것이 작동하도록하는 방법을 모른다. 나는 Gendarme을 팀워크의 구축 단계로 실행하기 위해 보낸다. 나는 터미널에서 Gendarme를 뛰지는 않았지만 방금 소프트웨어에 익숙해졌습니다. 저는 프로젝트의 어셈블리를 확인하기 위해 wizrd를 사용했고 팀 구성의 빌드 단계로 사용하기 시작했습니다. 그러나 그것에 대해 전혀 알지 못했고 장님이 시도했습니다. 성공하지 못했습니다. – Jorge

답변

2

결국 나는 해결책을 찾는 것을 끝내었고 관심있는 사람이 볼 수 있도록 여기에 게시했습니다.

Teamcity에는 빌드 프로세스의 일부로 Gendarme를 사용하는 데 사용할 수있는 명령 줄 빌드 단계가 있습니다. 빌드 단계의 작업 공간 속성에 여기에 작성하려는 사용자 지정 스크립트의 경우 이 .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을 할 것입니다 라이브러리 폴더의 내용과 실행 헌병 빌드 단계 그 후를 다시 생성 할 것입니다. 마침내 Gendarme은 보고서를 완료 할 때 때로는 종료 코드를 1 개 던져 버릴 것이지만 보고서가 성공적으로 실행되고 모든 규칙 검사도 수행되므로 Gendarme의 manpages에 따르면이 코드는 반환됩니다.

러너 실행이 성공적 이었으나 발견 된 어셈블리 또는없는 어셈블리의 결함 중 하나가 입니다. 어셈블리 당신이 단계를 다시는-생성이 있기 때문에, 당신은이 빌드 실패로 인 TeamCity의 조건을가는 당신이 할 수있는, 종료 코드 1을 무시 인 TeamCity를 말할 수 correctky 확인 된 경우

빌드 프로세스 종료 코드 옵션의 선택을 취소하면 0이 표시되지 않습니다. 그게 전부입니다.

희망 사항은 다른 사람도 이와 비슷한 것에 관심을 가지기를 바랍니다.