Untuk menghentikan eksekusi lebih lanjut saat perintah gagal:
command || exit 0
Untuk melanjutkan eksekusi saat perintah gagal:
command || true
Jenkins sedang menjalankan langkah-langkah pembangunan shell menggunakan /bin/sh -xe
secara default. -x
berarti mencetak setiap perintah yang dijalankan. -e
berarti keluar dengan kegagalan jika salah satu perintah dalam skrip gagal.
Jadi saya pikir apa yang terjadi dalam kasus Anda adalah perintah git Anda keluar dengan 1, dan karena -e
default param, shell mengambil kode keluar non-0, mengabaikan skrip lainnya dan menandai langkah tersebut sebagai kegagalan. Kami dapat mengonfirmasi hal ini jika Anda dapat memposting skrip langkah pembuatan di sini.
Jika demikian, Anda dapat mencoba memasukkan #!/bin/sh
sehingga skrip akan dieksekusi tanpa opsi; atau lakukan set +e
atau yang serupa di atas langkah build untuk mengganti perilaku ini.
Diedit:Hal lain yang perlu diperhatikan adalah, jika perintah terakhir di skrip shell Anda mengembalikan kode non-0 , seluruh langkah build akan tetap ditandai sebagai gagal bahkan dengan penyiapan ini. Dalam hal ini, Anda cukup memasukkan true
perintah di akhir untuk menghindari itu.
Pertanyaan terkait lainnya
Jika tidak ada yang mendorong, git mengembalikan status keluar 1. Jalankan langkah pembangunan shell masing-masing ditandai sebagai gagal. Anda dapat menggunakan pernyataan ATAU || (pipa ganda).
git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'
Artinya, jalankan argumen kedua jika yang pertama gagal (mengembalikan status keluar> 0). Perintah kedua selalu mengembalikan 0. Ketika tidak ada yang mendorong (keluar dari status 1 -> jalankan perintah kedua) gema akan mengembalikan 0 dan langkah pembangunan berlanjut.
Untuk menandai build sebagai tidak stabil, Anda dapat menggunakan langkah pasca-build Jenkins Text Finder. Itu bisa melalui output konsol, mencocokkan pola (gema Anda) dan menandai build sebagai tidak stabil.