วิธีกำหนดค่าการสร้างและทดสอบการกำหนดค่าหลายเจนกินส์

ฉันจำเป็นต้องสร้างและทดสอบกับการกำหนดค่าหลายรายการ: linux, osx และ Solaris ฉันมีโหนดทาสที่มีป้ายกำกับว่า "linux", "osx" และ "solaris" ในแต่ละการกำหนดค่า ฉันต้องการ (a) สร้าง (b) เรียกใช้การทดสอบควัน (c) หากการทดสอบควันผ่าน ให้ทำการทดสอบทั้งหมด และอาจมากกว่านั้น

ฉันคิดว่างานที่มีการกำหนดค่าหลายรายการอาจเป็นคำตอบ ดังนั้นฉันจึงตั้งค่างานบิลด์ที่มีการกำหนดค่าหลายรายการ และจะเริ่มบิลด์พร้อมกันในแต่ละระบบปฏิบัติการ งานสร้างจะทริกเกอร์การสร้างการทดสอบควันแบบดาวน์สตรีม ซึ่งในทางกลับกัน จะทริกเกอร์งานการทดสอบแบบเต็ม

ฉันพบปัญหาต่อไปนี้

  1. หากการกำหนดค่าอย่างใดอย่างหนึ่งล้มเหลว งานโดยรวมจะล้มเหลว และ Jenkins จะไม่เริ่มงานดาวน์สตรีมใดๆ (เช่น หากการสร้าง Solaris ล้มเหลว Jenkins จะไม่เรียกใช้การทดสอบควันหรือการทดสอบแบบเต็มสำหรับ osx และ linux)

  2. การสร้างโซลาริสใช้เวลาประมาณสองเท่าของการสร้างโซลาริสอื่น ๆ (ตามลำดับหนึ่งชั่วโมง) และฉันชอบการทดสอบควันของ linux และ osx โดยไม่รอให้โซลาริสสร้างเสร็จ

นั่นหมายความว่าฉันเหลือแค่งานหัตถกรรมสามท่อด้วยมือ และทิ้งงานเหล่านั้นไว้เบื้องหลังงาน "เริ่มต้นทั้งหมด" (เช่น การสร้างและผูกมัดงานต่อไปนี้ด้วยมือ)?

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

ฉันพลาดบางสิ่งที่ชัดเจนไปหรือเปล่า?


person Peter McLain    schedule 01.07.2011    source แหล่งที่มา


คำตอบ (2)


เท่าที่ฉันรู้คำตอบคือสร้างงานเมทริกซ์ 3 งานหนึ่งงานสำหรับแต่ละระบบ จากนั้นพวกเขาจะมีงานย่อย 3 งาน (งานสร้าง, การทดสอบควัน, การทดสอบเต็ม) โดยมีงานสร้างเป็นมาตรฐาน

person MOnsDaR    schedule 04.07.2011
comment
ฉันสับสนเล็กน้อยกับคำตอบนี้ ถ้ามีงานเมทริกซ์ 3 งาน แต่ละงานจะมีแกนเป็นเท่าใด? 'งานเมทริกซ์' == 'งานหลายงาน' อยู่ที่นี่ไหม - person Dormidont; 09.10.2015

คุณเคยคิดที่จะรวมบิลด์ การทดสอบควัน และการทดสอบทั้งหมดไว้ในงานที่มีการกำหนดค่าหลายรายการเพียงงานเดียวหรือไม่? นอกจากจะเลอะเทอะนิดหน่อยแล้ว สิ่งนี้น่าจะเหมาะกับคุณ

หากต้องการตอบปัญหาแรกของคุณ: เพื่อทริกเกอร์งานดาวน์สตรีมโดยไม่คำนึงถึงผลลัพธ์ ให้ใช้บิลด์ที่มีพารามิเตอร์ทริกเกอร์เพื่อทำงานเมื่อเสร็จสมบูรณ์ (ทริกเกอร์เสมอ) จากนั้นทำเครื่องหมายที่ "บิลด์โดยไม่มีพารามิเตอร์"

หากต้องการตอบประเด็นที่สองของคุณ: ใช้งานที่มีการกำหนดค่าหลายรายการ (เมทริกซ์) ที่ครอบคลุมทั้งหมด หรือใช้สตรีมงานแยกกันสามรายการตามที่คุณกล่าวถึง อัปเดต: คุณสามารถรันงานเมทริกซ์ตามลำดับได้ 3 งานสำหรับแต่ละขั้นตอน (บิลด์, การทดสอบควัน, การทดสอบแบบเต็ม) แต่นั่นหมายความว่าหากขั้นตอนบิลด์ใด ๆ ล้มเหลว ก็จะไม่มีการรันการทดสอบควันเลย

person Lars Nordin    schedule 15.12.2011