Chcete-li zastavit další provádění při příkazu selže:
command || exit 0
Chcete-li pokračovat ve spuštění při příkazu selže:
command || true
Jenkins provádí kroky sestavení shellu pomocí /bin/sh -xe
ve výchozím stavu. -x
znamená vytisknout každý provedený příkaz. -e
znamená ukončení se selháním, pokud některý z příkazů ve skriptu selhal.
Takže si myslím, že to, co se stalo ve vašem případě, je váš příkaz git exit s 1 a kvůli výchozímu -e
param, shell vyzvedne výstupní kód jiný než 0, ignoruje zbytek skriptu a označí krok jako neúspěšný. Můžeme to potvrdit, pokud zde zveřejníte svůj skript kroku sestavení.
Pokud je to váš případ, můžete zkusit zadat #!/bin/sh
takže skript bude proveden bez volby; nebo proveďte set +e
nebo cokoli podobného nad krokem sestavení, abyste toto chování přepsali.
Upraveno:Další věc, kterou je třeba poznamenat, je, že pokud poslední příkaz ve vašem shell skriptu vrací kód jiný než 0 , bude celý krok sestavení i při tomto nastavení stále označen jako neúspěšný. V tomto případě můžete jednoduše zadat true
příkaz na konci, aby se tomu zabránilo.
Další související otázka
Pokud není co tlačit, git vrátí stav ukončení 1. Krok vytvoření shellu je označen jako neúspěšný. Můžete použít příkaz OR || (dvojité potrubí).
git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'
To znamená, že provede druhý argument, pokud první selže (vrácený návratový stav> 0). Druhý příkaz vždy vrátí 0. Když není co tlačit (ukončit stav 1 -> provést druhý příkaz), echo vrátí 0 a krok sestavování pokračuje.
Chcete-li označit sestavení jako nestabilní, můžete použít krok po sestavení Jenkins Text Finder. Může procházet výstupem konzole, odpovídat vzoru (vašemu echu) a označit sestavení jako nestabilní.