จะปิดการใช้งานบางสาขาใน Multibranch Jenkins Builds ได้อย่างไร


10

ฉันมีงานหลายสาขาตั้งค่าให้ทำงานสาขาใด ๆ กับ Jenkinsfile

ฉันมีตัวเลือกบางอย่างที่ฉันสามารถนึกได้ว่าถ้าฉันต้องการลบสาขาออกจากรายการงานที่กำลังทำงานสำหรับไปป์ไลน์แบบหลายสาขา

  1. ฉันสามารถลบสาขา
  2. ฉันสามารถลบเจนกินส์ไฟล์ในสาขานั้นได้

วิธีที่สองนั้นดียกเว้นฉันต้องยอมรับและผลักดันมันไปที่ repo git สำหรับสาขาของฉันและถ้าสาขานั้นถูกรวมเข้ากับสาขาอื่นมันจะทำให้ Jenkinsfile หายไป

วิธีที่ดีที่สุดในการปิดการใช้งานท่อส่งหลายสาขาเพียงบางสาขาคืออะไร?

คำตอบ:


17

เจนกินส์สามารถกรองสาขาในไปป์ไลน์หลายสาขาโดยใช้ชื่อไวด์การ์ดหรือนิพจน์ทั่วไป

เจนกินส์กรองสาขา


มีวิธีใดที่จะทำสิ่งนี้ภายใน Jenkinsfile (ดังนั้นมันจึงทำซ้ำได้)?
xjcl

1
ได้คุณสามารถเพิ่มwhen { anyOf { branch 'master'; branch 'release/**' } }ในสเตจใดก็ได้ (ตามที่กำหนด) หรือif (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}ภายในสคริปท์สคริปต์ (เกือบทุกที่) สำหรับตัวเลือกแรกมีมีมากขึ้นในjenkins.io/doc/book/pipeline/syntax/#when อย่างไรก็ตามวิธีที่ดีที่สุดคือการกำหนดค่านี้ในปลั๊กอินไปป์ไลน์แบบหลายสาขาตามที่ระบุไว้ในคำตอบ
biolauri

-1

เพียงแค่ลบ Jenkinsfile ในสาขาที่คุณไม่ต้องการให้มีงานสาขาที่เกี่ยวข้อง นี่จะเป็นการลบงานสาขา (แน่นอนถ้าคุณได้ตั้ง "กลยุทธ์รายการเด็กกำพร้า" อย่างเหมาะสม)

จากมุมมองของ Jenkins Multibranch Pipeline Project สิ่งนี้มีผลเช่นเดียวกับการลบสาขา นี่เป็นเพราะมันเป็นเพียงการสแกนหาสาขาที่มี Jenkinsfiles เป็นเกณฑ์ในการสร้าง (หรือลบ) งานสาขาที่เกี่ยวข้อง

ยกเลิกการส่งคืนเพื่อคืนค่า Jenkinsfile หาก / เมื่อคุณต้องการงานสาขาอีกครั้ง


นี่เป็นงานที่มากเกินไป เมื่อคุณสร้างสาขาและลบไฟล์คุณกำลังแก้ไขประวัติ GIT โดยไม่มีเหตุผล การกรองในระดับ Jenkins ดีกว่ามากคุณไม่ต้องทำอะไรเลย
casey vega
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.