Pekerjaan hulu Jenkins/Hudson tidak mendapatkan warna status bola dari pekerjaan hilir

Saya memiliki pekerjaan hulu yang menjalankan 4 pekerjaan hilir.

Jika pekerjaan upstream berhasil diselesaikan, pekerjaan downstream akan memulai eksekusinya.

Pekerjaan upstream, karena berhasil diselesaikan, mendapat bola biru (hasil build=stabil), namun meskipun pekerjaan downstream gagal (bola merah) atau tidak stabil (bola kuning), pekerjaan upstream tetap mempertahankan warna birunya.

Apakah ada cara untuk mendapatkan hasil pekerjaan upstream yang bergantung pada pekerjaan downstream? Maksud saya, jika tiga pekerjaan downstream mendapatkan build yang stabil tetapi salah satunya mendapatkan build yang tidak stabil, hasil build upstream seharusnya tidak stabil.


person victorgp    schedule 26.05.2011    source sumber
comment
Pendekatan ini sangat berguna (lihat solusi peringkat teratas): stackoverflow.com/questions/5487104/   -  person vetalok    schedule 25.06.2012


Jawaban (5)


Saya menemukan solusinya. Ada sebuah plugin bernama pluging Groovy Postbuild yang memungkinkan Anda menjalankan skrip Groovy dalam fase pasca pembuatan. Tambahkan kode sederhana ke pekerjaan hilir, Anda dapat mengubah status keseluruhan hulu.

Ini adalah kode yang perlu Anda tambahkan:

upstreamBuilds = manager.build.getUpstreamBuilds();

upstreamJob = upstreamBuilds.keySet().iterator().next();

lastUpstreamBuild = upstreamJob.getLastBuild();

if(lastUpstreamBuild.getResult().isBetterThan(manager.build.result)) {
    lastUpstreamBuild.setResult(manager.build.result);
}

Anda dapat menemukan info lebih lanjut di entri blog di sini.

person victorgp    schedule 14.06.2011

Opsi lain yang mungkin cocok untuk Anda adalah menggunakan plugin build berparameter. Ini memungkinkan Anda untuk memiliki 4 bangunan "hilir" sebagai langkah pembangunan. Artinya, build "induk" Anda bisa gagal jika salah satu build turunannya mengalami kegagalan.

Kita melakukan ini ketika kita ingin menyembunyikan kompleksitas untuk tampilan plugin build-pipeline .

person Geoff Bullen    schedule 31.05.2011
comment
Halo, terima kasih atas jawaban Anda, tapi, bisakah Anda menjelaskan sedikit lebih banyak apa yang Anda maksud?, saya tidak mengerti bagaimana saya bisa menggunakan plugin itu untuk membuat induknya gagal jika pekerjaan hilir gagal. Terima kasih! - person victorgp; 31.05.2011

Kami mengalami masalah serupa dan belum menemukan solusi yang tepat. Solusi parsialnya adalah dengan menggunakan Plugin Builds yang Dipromosikan. Konfigurasikan untuk proyek hulu Anda untuk menyertakan beberapa indikator visual ketika pekerjaan hilir selesai. Ini tidak mengubah status pekerjaan secara keseluruhan, namun memberi tahu kami ketika pekerjaan hilir gagal.

person Jason Swager    schedule 27.05.2011

Mungkin plugin ini dapat memenuhi apa yang Anda cari?

Plugin langkah pembuatan Prasyarat Jenkins

person jaustin    schedule 08.07.2011

solusi untuk proyek saya adalah menciptakan pekerjaan baru, yaitu hilir dari hilir. Kami menetapkan langkah pasca pembangunan "Memicu pembangunan berparameter pada proyek lain" di ketiga pekerjaan hilir asli. Parameter yang diurai ke dalam pekerjaan baru bergantung pada status ketiga pekerjaan tersebut dan parameter tersebut akan menyebabkan pekerjaan baru tersebut bereaksi sesuai dengan itu.

1. Buat pekerjaan baru yang berisi satu kelas sederhana dan satu tes sederhana. Kedua parameter bergantung, yaitu kelas gagal jika parameter "status" = fail, kelas lulus tetapi pengujian gagal jika parameter "status"=unstable, dll.

2. Tetapkan build berparameter Pemicu pada proyek lain untuk tiga tugas downstream asli dengan konfigurasi yang relevan.

3. Sesuaikan pemberitahuan pekerjaan baru.

person Community    schedule 01.06.2011