ฉันได้รับมือกับปัญหาการปรับขนาด CI ที่ บริษัท ของฉันและในขณะเดียวกันก็พยายามคิดว่าจะใช้แนวทางใดเมื่อพูดถึง CI และหลายสาขา มีคำถามที่คล้ายกันที่ StackOverflow เป็นสาขาคุณลักษณะหลายและบูรณาการอย่างต่อเนื่อง ฉันเริ่มต้นใหม่เพราะฉันต้องการรับการอภิปรายเพิ่มเติมและให้การวิเคราะห์บางอย่างในคำถาม
จนถึงตอนนี้ฉันพบว่ามี 2 แนวทางหลักที่ฉันสามารถทำได้ (หรืออาจจะเป็นวิธีอื่น ๆ ???)
- งานหลายชุด (พูดถึง Jenkins / Hudson ที่นี่) ต่อสาขา
- เขียนเครื่องมือเพื่อจัดการงานพิเศษ
- สร้าง / แก้ไข / ลบงานจำนวนมาก
- การตั้งค่าแบบกำหนดเองสำหรับแต่ละงานต่อสาขา (SCM url, การทำสำเนาการจัดการ repos)
- ตัวอย่างบางส่วนของผู้ที่แก้ไขปัญหานี้ด้วยเครื่องมือเชลล์สคริปต์มดและ Jenkins CLI ดู:
- http://jenkins.361315.n4.nabble.com/Multiple-branches-best-practice-td2306578.html
- http://jenkins.361315.n4.nabble.com/Is-it-possible-to-handle-multiple-branches-where-some-jobs-should-run-on-each-one-without-duplicatin-td954729 html
- http://jenkins.361315.n4.nabble.com/Parallel-development-with-branches-td1013013.html
- กำหนดค่าหรือสร้างงานฮัดสันโดยอัตโนมัติ
- จะทำให้เกิดภาระมากขึ้นในคลัสเตอร์ CI ของคุณ
- วงจรคำติชมสำหรับ devs ช้าลง (หากโครงสร้างพื้นฐานไม่สามารถรองรับการโหลดใหม่ได้)
- เขียนเครื่องมือเพื่อจัดการงานพิเศษ
- งานหลายชุดต่อ 2 สาขา (dev & stable)
- จัดการสองชุดด้วยตนเอง (หากคุณเปลี่ยน Conf ของงานให้แน่ใจว่าได้เปลี่ยนในสาขาอื่น)
- PITA แต่อย่างน้อยก็มีเพียงไม่กี่คนที่จะจัดการ
- สาขาพิเศษอื่น ๆ จะไม่ได้รับชุดทดสอบเต็มรูปแบบก่อนที่จะถูกผลักดันไปยัง dev
- ผู้พัฒนาที่ไม่พอใจ เหตุใดนักพัฒนาจึงควรสนใจเกี่ยวกับปัญหาการปรับขนาด CI เขามีคำของ่ายๆเมื่อฉันแยกสาขาฉันต้องการทดสอบรหัสของฉัน เรียบง่าย
- จัดการสองชุดด้วยตนเอง (หากคุณเปลี่ยน Conf ของงานให้แน่ใจว่าได้เปลี่ยนในสาขาอื่น)
ดูเหมือนว่าถ้าฉันต้องการให้ devs กับ CI สำหรับสาขาที่กำหนดเองของพวกเขาฉันต้องการเครื่องมือพิเศษสำหรับ Jenkins (API หรือ shellscripts หรืออะไรบางอย่าง?) และจัดการการปรับขนาด หรือฉันสามารถบอกให้พวกเขารวมเข้ากับ DEV ให้บ่อยขึ้นและใช้ชีวิตโดยไม่มี CI ในสาขาที่กำหนดเอง คุณจะเลือกอันไหนหรือมีทางเลือกอื่น