Mam zadanie, które utworzy pliki, chyba że jedna z podawanych wartości odpowiada starszej wartości. Jaki jest najczystszy sposób w Jenkins, aby przerwać lub zakończyć pracę bez tego FAILED
? Wyjście jest poprawnym zachowaniem, więc chcę zaznaczyć kompilację SUCCESS
.
Skończy się na takim wyrażeniu if;
stage ('Check value') {
if( $VALUE1 == $VALUE2 ) {
//if they do match exit as a success, else continue with the rest of the job
}
}
Nie chcę rzucać kodu błędu, chyba że może to w jakiś sposób przełożyć się na oznaczenie udanej kompilacji.
exit 0
...return 0
, na każdym końcu groovy kodu, który nie zgłasza wyjątku, tak myślę. Pozwolę, aby ktoś z większym doświadczeniem w jenkins 2 potwierdził lubOdpowiedzi:
Domyśliłam się. Poza jakimikolwiek etapami (w przeciwnym wypadku zakończy się to sukcesem) wykonaj następujące czynności;
return
zatrzyma etap lub węzeł, na którym pracujesz, dlatego tak ważne jest uruchomienie go poza etapem, a ustawieniecurrentBuild.result
zapobiegnie jego awarii.źródło
Możesz również użyć błędu, aby wyjść z bieżącego etapu, wtedy nie musisz brać pod uwagę bieżącej hierarchii etapów i podobnych rzeczy:
Ale prowadziłoby to do czerwonego etapu, jeśli błąd wystąpi w danym etapie.
To zależy od twoich wymagań, z którego sposobu chcesz skorzystać.
źródło
RuntimeException
rzucania zamiast łapania wszystkich wyjątków i sprawdzania flagiSzczerze mówiąc, nie powinieneś specjalnie używać komendy exit, ale istnieje Wtyczka warunkowa BuildStep, która może osiągnąć ten sam efekt końcowy (kod, który nie działa).
Jeszcze się z tym nie spotkałem, więc nie korzystałem z wtyczki.
Istnieją również warunki warunkowe, które można znaleźć w poprzednim poście Przepełnienie stosu na Jenkins: Jenkins Pipeline Warunkowy krok / etap
źródło
exit
polecenia” - jeśli tak, przepraszam, to moje nieporozumienie.Executor.interrupt(Result)
Metoda jest najczystszym, najbardziej bezpośredni sposób udało mi się znaleźć, aby zatrzymać build przedwcześnie i oznaczyć ją jako sukces.Plusy :
Wady :
źródło