งานต้นน้ำของ Jenkins/Hudson ไม่ได้รับสีลูกสถานะของงานปลายน้ำ

ฉันมีงานต้นน้ำที่ดำเนินงานปลายน้ำ 4 งาน

หากงานอัพสตรีมเสร็จสิ้นสำเร็จ งานดาวน์สตรีมก็จะเริ่มดำเนินการ

งานอัปสตรีมเนื่องจากเสร็จสิ้นสำเร็จจะได้ลูกบอลสีน้ำเงิน (ผลลัพธ์การสร้าง=เสถียร) แต่ถึงแม้จะยากลำบากงานดาวน์สตรีมจะล้มเหลว (ลูกบอลสีแดง) หรือไม่เสถียร (ลูกบอลสีเหลือง) งานอัปสตรีมจะคงสีฟ้าไว้

อย่างไรก็ตาม จะได้รับผลลัพธ์ของงานอัปสตรีมซึ่งขึ้นอยู่กับงานดาวน์สตรีมหรือไม่ ฉันหมายถึง หากงานดาวน์สตรีมสามงานมีบิลด์ที่เสถียร แต่งานหนึ่งในนั้นมีบิลด์ที่ไม่เสถียร ผลลัพธ์ของบิลด์อัพสตรีมก็ควรจะไม่เสถียร


person victorgp    schedule 26.05.2011    source แหล่งที่มา
comment
แนวทางนี้มีประโยชน์มาก (ดูโซลูชันที่ได้รับคะแนนสูงสุด): stackoverflow.com/questions/5487104/   -  person vetalok    schedule 25.06.2012


คำตอบ (5)


ฉันพบวิธีแก้ปัญหา มีปลั๊กอินชื่อ Groovy Postbuild Pluging ที่ให้คุณรันสคริปต์ Groovy ในขั้นตอนการสร้างโพสต์ เพิ่มโค้ดง่ายๆ ให้กับงานดาวน์สตรีมที่คุณสามารถแก้ไขสถานะโดยรวมของอัปสตรีมได้

นี่คือรหัสที่คุณต้องเพิ่ม:

upstreamBuilds = manager.build.getUpstreamBuilds();

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

lastUpstreamBuild = upstreamJob.getLastBuild();

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

คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ในรายการ บล็อกที่นี่

person victorgp    schedule 14.06.2011

ตัวเลือกอื่นที่อาจใช้ได้ผลสำหรับคุณคือการใช้ปลั๊กอิน build แบบพารามิเตอร์ ช่วยให้คุณมีบิลด์ "ดาวน์สตรีม" 4 รายการเป็นขั้นตอนการสร้าง ซึ่งหมายความว่าบิลด์ "พาเรนต์" ของคุณอาจล้มเหลวได้หากบิลด์ย่อยล้มเหลว

เราทำเช่นนี้เมื่อเราต้องการซ่อนความซับซ้อนสำหรับมุมมองปลั๊กอิน build-pipeline .

person Geoff Bullen    schedule 31.05.2011
comment
สวัสดี ขอบคุณสำหรับคำตอบของคุณ แต่คุณช่วยอธิบายเพิ่มเติมอีกหน่อยว่าคุณหมายถึงอะไร ฉันไม่เห็นว่าฉันจะใช้ปลั๊กอินนั้นเพื่อทำให้พาเรนต์ล้มเหลวได้อย่างไรหากงานดาวน์สตรีมล้มเหลว ขอบคุณ! - person victorgp; 31.05.2011

เราประสบปัญหาที่คล้ายกันและไม่พบวิธีแก้ปัญหาที่สมบูรณ์แบบ วิธีแก้ปัญหาบางส่วนคือใช้Promoted Builds Plugin กำหนดค่าสำหรับโปรเจ็กต์อัปสตรีมของคุณเพื่อรวมตัวบ่งชี้แบบภาพเมื่องานดาวน์สตรีมเสร็จสิ้น ไม่เปลี่ยนสถานะงานโดยรวม แต่จะไม่แจ้งให้เราทราบเมื่องานดาวน์สตรีมล้มเหลว

person Jason Swager    schedule 27.05.2011

บางทีปลั๊กอินนี้อาจทำสิ่งที่คุณกำลังมองหา?

ปลั๊กอินขั้นตอนการสร้างข้อกำหนดเบื้องต้นของ Jenkins

person jaustin    schedule 08.07.2011

วิธีแก้ไขสำหรับโปรเจ็กต์ของฉันคือการสร้างงานใหม่ ซึ่งเป็นดาวน์สตรีมของดาวน์สตรีม เราตั้งค่าขั้นตอนการสร้างโพสต์ "ทริกเกอร์การสร้างพารามิเตอร์บนโปรเจ็กต์อื่น ๆ " ในงานดาวน์สตรีมดั้งเดิมทั้งสามงาน พารามิเตอร์ที่แยกวิเคราะห์เป็นงานใหม่จะขึ้นอยู่กับสถานะของงานทั้งสาม และพารามิเตอร์จะทำให้งานใหม่ตอบสนองตามนั้น

1. สร้างงานใหม่ซึ่งประกอบด้วยคลาสง่ายๆ หนึ่งคลาสและการทดสอบง่ายๆ หนึ่งคลาส พารามิเตอร์ทั้งสองขึ้นอยู่กับ เช่น คลาสล้มเหลวหากพารามิเตอร์ "status" = fail คลาสผ่าน แต่การทดสอบล้มเหลวหากพารามิเตอร์ "status"=unstable เป็นต้น

2. ตั้งค่าทริกเกอร์ที่สร้างพารามิเตอร์ในโปรเจ็กต์อื่นๆ สำหรับงานดาวน์สตรีมดั้งเดิมสามงานที่มีการกำหนดค่าที่เกี่ยวข้อง

3. ตั้งค่าการแจ้งเตือนงานใหม่ให้เหมาะสม

person Community    schedule 01.06.2011