2017-12-26 77 views
1

jenkins를 통해 windows bat 스크립트를 실행하고 있습니다. 배치 파일을 원하는 출력을주고있다, 그러나 구축ROBOCOPY 명령이 BAT 스크립트에서 성공적으로 실행 되더라도 JENKINS 작업이 실패했습니다.

cd /d D:\\Bank\\Member\\ID 

if %errorlevel% neq 0 exit /b %errorlevel% 

mkdir OTP 

if %errorlevel% neq 0 exit /b %errorlevel% 

robocopy C:\Corporate D:\\Bank\\Member\\ID\ /E /XF *.bat 

if %errorlevel% neq 1 exit /b %errorlevel% 

cd /d D:\\Bank\\Staff\\ID 

ROBOCOPY는 성공적으로의 파일 복사 후에 종료 코드 1을 부여 .. failing.My 배치 파일입니다.
하지만 JENKINS 구축하고 아래의 오류를주는 실패

Build step 'Execute Windows batch command' marked build as failure 
Finished: FAILURE 

내가 robocopy 종료 코드 1

답변

0

As mentioned here 확인하는 첫 번째 기준은 젠킨스를 실행하는 데 사용되는 계정 인 경우 빌드가 성공하고 싶다. services.msc을 입력하여 Windows 서비스를 열고 Jenkins 서비스를 찾으십시오.

"로컬 서비스 계정"대신 자신의 계정을 사용하십시오. 올바른 문제가 발생하지 않도록하십시오.

하지만 다른 기준은 오류 코드를 표시하는 것입니다.
mentioned here로 :

All exit codes up to '3' are fine.

그래서 robocopy 후, 당신은 추가 할 수 있습니다 젠킨스을 보장

@echo robocopy exit code: %ERRORLEVEL% 
@if %ERRORLEVEL% GTR 3 (echo robocopy ERROR) 
@if %ERRORLEVEL% GTR 3 (exit %ERRORLEVEL%) 
@set ERRORLEVEL=0 
REM at the end: 
exit /b 0 

이 ROBOCOPY 원래 오류 수준은 1에도 불구하고, 배치 단계를 실패하지 않습니다.

+0

이미 시도했지만 작동하지 않습니다. 질문과 같은 오류 메시지가 나타납니다. @ VonC –

+0

@rohit.dagur errorlevel을 확인하고 0으로 설정 했습니까? – VonC

+0

예 ... 확인했습니다 ... 설정했지만 결과는 동일합니다. @ VonC –

0

jenkins-pipeline, try/catch 블록을 사용하고 bat 명령을 최대한 적게 사용하거나 전혀 사용하지 않는 것이 좋습니다.

사례를 고려해 보면 간단한 해결책도 있습니다. "ERRORLEVEL을 사용하여 빌드 불안정"을 1 (또는 다른 적절한 숫자)로 설정하십시오. "불안정"으로 빌드를 확인합니다

enter image description here

이 방법은 있지만, 계속 실행됩니다 : 당신은 "Windows 배치 명령을 실행하여"블록에서 "고급"버튼을 클릭하면 필드가 나타납니다.

+0

나는 실패한 빌드를하고 싶지 않다. 젠킨스는 박쥐 file successfuly를 실행하지만 실패한 것으로 빌드를 표시했다 ... @ n01d –

+0

"failed"가 아니라 exitcode 1에서 "Unstable"으로 빌드를 표시한다. – n01d