Używam kilku poleceń wsadowych Windows w jenkins, gdzie każde z poleceń może zawieść. Aby wykonać zadanie Jnkins na każdym kroku, te polecenia wsadowe wyglądają następująco:
net use m: \%IP_ADDRESS%Whatever %PASSWORD% /user:%USERNAME%
if ERRORLEVEL 1 exit 1
mkdir m:Install
if ERRORLEVEL 1 exit 1
copy /b %LOCAL_TEMP%%INSTALLER_EXE% m:Install%INSTALLER_EXE%
if ERRORLEVEL 1 exit 1
net use m: /D
if ERRORLEVEL 1 exit 1
Innymi słowy: wydaje mi się, że sprawdzam każdą pojedynczą komendę wsadową, jeśli się nie udało, a następnie, jeśli jest to konieczne, kończę z kodem błędu 1. Czy istnieje bardziej sensowny / wygodny / lepszy sposób, aby to osiągnąć?
Jeśli nie sprawdzę każdego kroku i wyjdę, jenkins wykona następujące polecenie wsadowe.
Odpowiedzi:
6 dla odpowiedzi № 1Niestety w partii nie można aktywować flagi takiej jak -e
w bashu, który kończyłby się na kodzie powrotu, który nie jest równy 0. Można jednak użyć logicznego or
aby przejść do etykiety wyjścia, jak opisano tutaj: https://stackoverflow.com/a/8965092/2003420
3 dla odpowiedzi № 2
Uzupełniaj swoje polecenia razem z partią &&
operator. Pomija polecenia w prawo, jeśli polecenie po lewej ma niezerowy kod zakończenia.