2017-12-26 3 views
1

Ich führe ein Windows-Bat-Skript über jenkins aus. Batch-Datei wird die gewünschte Ausgabe zu geben, jedoch bauen ist failing.My Batch-Datei ist ..JENKINS-Job ist fehlgeschlagen, auch wenn der ROBOCOPY-Befehl erfolgreich in einem BAT-Skript ausgeführt wurde

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 GIVES EXIT CODE 1 NACH erfolgreich Kopieren von Dateien.
ABER JENKINS FAILS BUILD UND VERABREICHUNG UNTER ERROR:

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

ich die bauen wollen erfolgreich zu sein, wenn robocopy Ausfahrten Code 1.

Antwort

0

As mentioned here die ersten Kriterien überprüfen das Konto verwendet Jenkins laufen. Geben Sie services.msc ein, um die Windows-Dienste zu öffnen und nach dem Jenkins-Dienst zu suchen.

Anstelle von "Local Service Account", verwenden Sie Ihr eigenes Konto: das wird jedes richtige Problem vermeiden.

Aber: das andere Kriterium ist, den Fehlercode anzuzeigen.
Als mentioned here:

All exit codes up to '3' are fine.

So nach robocopy, können Sie hinzufügen:

@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 

Das Jenkins wird dafür sorgen, nicht den Batch-Schritt fehlschlagen, obwohl die ursprüngliche Fehlerstufe für Robocopy 1 war.

+0

Ich habe es schon versucht, aber es funktioniert nicht.Ich bekomme die gleiche Fehlermeldung wie in der Frage ... @ VonC –

+0

@ Rohit.dagur hast du versucht, die errorlevel zu überprüfen und auf 0 setzen? – VonC

+0

ja ... ich habe es überprüft..und setze es, aber ich erhalte dasselbe ... @ VonC –

0

Mein bester Tipp wäre, jenkins-pipeline, versuchen/catch-Block, und verwenden Sie Bat-Befehle so wenig wie möglich (oder gar nicht verwenden).

Aber in Anbetracht Ihres Falles gibt es auch eine einfache Lösung: Setzen Sie einfach das Feld "ERRORLEVEL um Build unstable zu setzen" auf 1 (oder eine andere geeignete Zahl). Das Feld wird angezeigt, wenn Sie unter der Schaltfläche „Erweitert“ klicken Sie auf „Ausführen Windows-Batch-Befehl“ Block:

enter image description here

Diese Methode wird Ihr Build als „Unstable“ überprüfen, wird aber weiterhin auszuführen.

+0

Ich möchte nicht den Build fehlgeschlagen. Jenkins führt Bat-Datei erfolgreich aber am Ende markiert es als fehlgeschlagen ... @ n01d –

+0

Es wird Build als "Instable" auf Exitcode 1 markieren - nicht "fehlgeschlagen". – n01d

Verwandte Themen