Cara mengkonfigurasi build dan pengujian multi-konfigurasi jenkins

Saya perlu membangun dan menguji beberapa konfigurasi: linux, osx dan solaris. Saya memiliki node budak berlabel "linux", "osx" dan "solaris". Pada setiap konfigurasi, saya ingin (a) membangun (b) menjalankan pengujian asap (c) jika pengujian asap berhasil, kemudian menjalankan pengujian penuh, dan mungkin lebih.

Saya pikir pekerjaan multi-konfigurasi mungkin adalah jawabannya, jadi saya menyiapkan pekerjaan pembangunan multi-konfigurasi dan itu memulai pembangunan secara bersamaan di setiap OS. Pekerjaan pembangunan akan memicu pembangunan pengujian asap hilir, yang, pada gilirannya, memicu pekerjaan pengujian penuh.

Saya mengalami masalah berikut

  1. Jika salah satu konfigurasi gagal, tugas secara keseluruhan akan gagal, dan Jenkins tidak akan menjalankan tugas hilir apa pun (misalnya, jika build solaris gagal, Jenkins tidak akan menjalankan pengujian asap atau pengujian penuh untuk osx dan linux).

  2. Pembuatan solaris membutuhkan waktu sekitar dua kali lebih lama dari yang lain (dalam urutan satu jam), dan saya lebih memilih pengujian linux dan osx smoke daripada menunggu hingga pembuatan solaris selesai.

Apakah itu berarti saya hanya punya tiga jalur pekerjaan yang dibuat dengan tangan, dan menempatkannya di belakang pekerjaan "awal dari segalanya" (yaitu, membuat dan merangkai pekerjaan berikut secara manual)?

build-linux   smoke-test-linux   full-test-linux
build-osx     smoke-test-osx     full-test-osx
build-solaris smoke-test-solaris full-test-solaris

Apakah saya melewatkan sesuatu yang jelas?


person Peter McLain    schedule 01.07.2011    source sumber


Jawaban (2)


Sejauh yang saya tahu jawabannya adalah dengan membuat 3 pekerjaan matriks, satu untuk setiap sistem. Mereka kemudian akan memiliki 3 subpekerjaan (build, smoke-test, fulltest) dengan build-job sebagai batu ujian.

person MOnsDaR    schedule 04.07.2011
comment
Saya agak bingung dengan jawaban ini. Jika terdapat 3 pekerjaan matriks, tentukan sumbu masing-masing pekerjaan matriks tersebut? Apakah 'pekerjaan matriks' == 'multi-pekerjaan' ada di sini? - person Dormidont; 09.10.2015

Pernahkah Anda berpikir untuk menggabungkan build, smoke-test, dan full test ke dalam satu tugas multi-konfigurasi? Selain sedikit berantakan, ini juga akan berhasil untuk Anda.

Untuk menjawab masalah pertama Anda: untuk memicu pekerjaan hilir apa pun hasilnya, gunakan build berparameter pemicu untuk dijalankan ketika selesai (selalu terpicu) lalu centang "build tanpa parameter"

Untuk menjawab masalah kedua Anda: gunakan pekerjaan multi-konfigurasi (matriks) yang mencakup semua atau gunakan tiga aliran pekerjaan terpisah seperti yang Anda sebutkan. PEMBARUAN: Anda dapat menjalankan 3 pekerjaan matriks berurutan untuk setiap langkah (pembangunan, pengujian asap, pengujian penuh) tetapi ini berarti bahwa jika salah satu langkah pembangunan gagal maka tidak ada pengujian asap yang akan dijalankan.

person Lars Nordin    schedule 15.12.2011