Per interrompere l'ulteriore esecuzione quando command fallisce:
command || exit 0
Per continuare l'esecuzione quando command fallisce:
command || true
Jenkins sta eseguendo i passaggi di compilazione della shell utilizzando /bin/sh -xe
per impostazione predefinita. -x
significa stampare ogni comando eseguito. -e
significa uscire con errore se uno qualsiasi dei comandi nello script fallisce.
Quindi penso che quello che è successo nel tuo caso sia il tuo comando git exit con 1, e a causa del -e
predefinito param, la shell rileva il codice di uscita diverso da 0, ignora il resto dello script e contrassegna il passaggio come un errore. Possiamo confermarlo se puoi postare qui il tuo script della fase di compilazione.
In tal caso, puoi provare a inserire #!/bin/sh
in modo che lo script venga eseguito senza opzioni; o fai un set +e
o qualcosa di simile in cima alla fase di compilazione per sovrascrivere questo comportamento.
Modificato:un'altra cosa da notare è che, se l'ultimo comando nello script della tua shell restituisce codice diverso da 0 , l'intera fase di compilazione verrà comunque contrassegnata come non riuscita anche con questa configurazione. In questo caso, puoi semplicemente inserire un true
comando alla fine per evitarlo.
Un'altra domanda correlata
Se non c'è nulla da inviare, git restituisce lo stato di uscita 1. La fase di esecuzione della build della shell è rispettivamente contrassegnata come non riuscita. È possibile utilizzare l'istruzione OR || (doppio tubo).
git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'
Ciò significa che esegui il secondo argomento se il primo fallisce (stato di uscita restituito> 0). Il secondo comando restituisce sempre 0. Quando non c'è nulla da inviare (exit status 1 -> esegui secondo comando) echo restituirà 0 e la fase di build continua.
Per contrassegnare la build come instabile puoi utilizzare il passaggio post-build Jenkins Text Finder. Può passare attraverso l'output della console, abbinare il modello (la tua eco) e contrassegnare la build come instabile.