2014-01-09 2 views
2

우리는 스칼라 프로젝트를 가지고 있으며 SBT를 빌드 도구로 사용합니다. 우리의 CI 도구 인 TeamCity이며, 우리는 다음과 같은 명령을 사용하여 명령 행 사용자 지정 스크립트 옵션을 사용하여 프로젝트를 빌드 : 컴파일이 실패 할 때 빌드는하지만, 성공하면TeamCity의 사용자 정의 스크립트에서 exitCode가 올바르지 않습니다.

call %system.SBT_HOME%\bin\sbt clean package 

빌드 프로세스가 잘 작동 - 인 TeamCity는 생각 스크립트가 예상대로 exitCode 0과 1로 종료되었으므로 TeamCity 빌드가 실패하지만 컴파일이 실패합니다.

우리는 우리가 ERRORLEVEL 빌드 로그 1.

관련 부분임을 알 지역에 cmd에서 동일한 명령을 실행하면

[11:33:44][Step 1/3] [error] trait ConfigurationDomain JsonSupport extends CommonFormats { 
[11:33:44][Step 1/3] [error]       ^
[11:33:44][Step 1/3] [error] one error found 
[11:33:45][Step 1/3] [error] (compile:compile) Compilation failed 
[11:33:45][Step 1/3] [error] Total time: 12 s, completed Jan 9, 2014 11:33:45 AM 
[11:33:45][Step 1/3] Process exited with code 0 

는 어떻게 우리가 인 TeamCity가의 실패를 인식 할 수 있습니다 짓다? 당신이 다음 빌드 로그에서 특정 텍스트를 기반으로 빌드 오류 조건을 사용할 수있는 출력에 0이 아닌 종료 코드를 프로세스를 얻을 수없는 경우

call %system.SBT_HOME%\bin\sbt clean package 
echo the exit code is %errorlevel% 
exit /b 
+0

cmd에서 errorLevel을 어떻게 확인합니까? –

+0

echo % errorLevel % – Yosefki

+0

다른 게시물에 사용 된 대답과 동일한 대답을 사용할 수 있습니다. http://stackoverflow.com/a/23338173/684582 –

답변

0

명시 적으로 종료하십시오. 문서는 this 페이지를 참고하십시오. 그러나 빌드 로그에 error found 텍스트가 있으면 빌드가 실패 할 수 있습니다.

+0

시도 : 0으로 인쇄되었으며 0으로 존재했습니다. – Yosefki

0

:

+0

예, 저도 해 봤습니다. 이 옵션은 전체 빌드에만 적용되며 빌드 단계는 아니지만 여전히 견고한 솔루션입니다. – Yosefki

관련 문제