Jenkins-Git Parameter Filter Branch Name

หลังจากย้ายจาก SVN > GitLab 3 ปีกว่าเนี่ย ปัญหาสำคัญอย่างนึงที่เจอประจำ การตั้งชื่อ Branch ซึ่งมันมีข้อตกลงนะ ล่าสุดตามนี้เลย

  • master (main) / develop - อันนี้ default อยู่แล้ว
  • release - สำหรับแก้ไข defect ของ release นั้นๆ กำหนดอายุไว้ 1 week
  • feature - ทำงานชิ้นใหญ่ๆ
  • support - สำหรับแก้ไข defect กรณีที่ปรับ tech เช่น ขยับ .NET6 ก่อนจะ merge code เข้า develop จะแตก branch support/net472 มาก่อน
  • hotfix - แก้บั๊กด่วน ไฟไหม้
  • bugfix - แก้บั๊กที่รอได้
  • uat - สำหรับลูกค้าที่ uat ยาวนานหลายๆ เดือน ส่วนใหญ่ 3-5 เดือน แต่นานสุด 2 ปี

สำหรับ flow และชื่อ Branch หากใครอ่าน Blog [GIT] แบ่งปัน Git Flow ที่ได้ใช้งานจริง มาก่อนอาจจะไม่เหมือนนะครับ มีปรับใหญ่ไปรอบนึงครับ ถ้าครบ 1 ปี จะมาแชร์ใหม่อีกรอบครับ

ปัญหา

ช่วงหลังๆ ชื่อ Branch เริ่มแปลกขึ้น เช่น

  • <ชื่อตัวเอง>_<note>
  • หรือ fixederror03
  • หรือ <user_a>_uat01
  • หรือ _<อะไรก็ไม่รู้>

แล้วที่นี่พอผ่านไปนานๆ ใครเจ้าของ Branch แล้วมันทำเพื่ออะไร ?

Git Parameter Filter Branch

พอดีมีเคสที่ต้องเข้ามาแก้ Jenkinfile ด้วย เอาหละใช้วิธี Workaround ก่อนและกัน โดยกำหนดจาก Jenkins - Git Parameter ถ้าตั้งชื่อ Branch ไม่ตรงตาม Regex ไม่ให้แสดงชื่อ Branch เพื่อจะ Build ทดสอบ หรือ Build ส่งลูกค้า โดย Pattern การตั้งชื่อ Branch ข้างต้นสามารถเขียน RegEx ได้ ดังนี้

origin/(main|master|develop|release|feature|support|hotfix|bugfix|uat)(.*)

นำ RegEx มาใช้งาน

  • Jenkinfile เพิ่ม RegEx ใน GitParameter > branchFilter
gitParameter branchFilter: 'origin/(main|master|develop|release|feature|support|hotfix|bugfix|uat)(.*)', defaultValue: 'develop', name: 'BRANCH_ON_GIT', type: 'PT_BRANCH', listSize: '15', quickFilterEnabled: true
  • ถ้ายังใช้ Wizard เพิ่ม RegEx ที่ Filter Branch Filter ตามรูปเลยครับ

ปิดท้าย

จริงๆ แล้ว Blog ที่ผมเขียนอาจจะไปแก้ปัญหาที่อาจจะไม่ถูกจุดสักทีเดียว ถ้าจะให้ดี

  • ใข้เงินแก้ปัญหา ก็ซื้อ License GitLab มันมี Push Rule ให้พร้อมเลย ถ้าใครตั้งชื่อ branch ไม่ตรงตาม pattern ระบบมันกันให้เลยครับ
  • ดักจาก Merge Pipeline ครับ -- ยังไม่ว่างมาลองทำเลยครับ ขอติต่างเป็น Blog ตอนถัดไปครับ

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.