2017-12-08 28 views
0

다음 단계를 실행하기 전에 먼저 배포를 테스트하는 TeamCity 단계가 있습니다 ("실행 : 모든 이전 단계가 성공적으로 완료되었습니다 "옵션이 선택됨). .deploy.cmd 스크립트를 사용하고 테스트 모드에서 실행하려면/T 스위치를 전달했습니다. 코드 0으로 프로세스가 반환되지만 테스트 배포에서 반환되고 오류 코드가 반환됩니다.TeamCity 테스트 코드 0에서 단계 프로세스를 종료하고 오류가 발생해도 다음 단계로 진행

어떻게 실패하고 다음 단계로 이동하지 않습니까?

Error Snapshot

답변

0

당신은 당신의 cmd를 스크립트를 호출하기위한 Runner typePowerShell을 사용할 수

감사합니다 (아래의 오류의 스냅 샷입니다). PowerShell을 사용할 때 try-catch 구조를 사용하고 코드에 오류가 발생하면 오류 코드> 0을 반환 할 수 있습니다.

예컨대 : %TestArg%Configuration Parameter이며, /T 또는 아무것도 동일,

$result = $null 
try 
{ 
    $result = &("C:\Users\guest\deploy.cmd") %TestArg% 
} 
catch 
{ 
    $errorMessage = $_.Exception.Message 
    Write-Error "Error on deploy: $errorMessage" 
    exit 1 
} 
echo $result 

. 스크립트가 어떤 결과를 반환하는 경우, 당신은 그것을 분석하고 오류 코드를 반환 할 수 있습니다 수동으로

if($result.ToLower().Contains("error")) 
{ 
    Write-Error "Deploy operation result contains error(s)" 
    exit 1 
} 

참고 : 그것은 나에게 보였다으로 매개 변수 Format stderr output as는 빌드 로그에 표시 오류의 색상에 대한 책임 . SSDT (SqlPackage.exe)를 통해 배포 데이터베이스에이 솔루션을 사용합니다. 오류가 발생하더라도 건물 및 다음 단계를 중단하지 않기 때문에