GNU/Linux >> Belajar Linux >  >> Linux

jangan gagal membangun jenkins jika mengeksekusi shell gagal

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.


Linux
  1. Jalankan Perintah Di Terminal Aktif Jarak Jauh?

  2. Jalankan Perintah Pada Rentang Direktori yang Ditentukan?

  3. Jalankan Perintah Di Mana File Ditemukan?

  1. Contoh Perintah chsh di Linux

  2. Jalankan perintah Shell di jenkins sebagai pengguna root?

  3. Mengapa popen() memanggil shell untuk mengeksekusi suatu proses?

  1. Sysadmin asli tidak sudo

  2. Bagaimana Cara Menjalankan Perintah di Shell Tanpa Menyimpannya ke Riwayat? [Kiat Linux]

  3. Bagaimana cara menjalankan perintah shell eksternal dari pengontrol laravel?