Triggering Jenkins build เพื่อรวมคำขอจาก GitLab web hook


10

ฉันต้องการให้เจนกิ้นส์ (1.561) สร้างคำขอผสาน (ดึง) ที่ส่งไปยัง GitLab (6.7.5) ซึ่งถูกเรียกโดยเว็บขอรวม ฉันมีบิลด์แบบกำหนดพารามิเตอร์และปลั๊กอินเจนกินส์ "GitLab Merge Request Builder" (1.2.0) และ "GitLab Hook" (1.0.0) การย้ายไปที่ Jenkins CI นั้นน่าเสียดายไม่ใช่ตัวเลือกจริง

ผสานรวมเข้ากับปลั๊กอิน Builder คือสามารถที่จะร้องขอสร้างผสานตราบใดที่ตัวแปรgitlabMergeRequestId, gitlabTargetBranchและgitlabSourceBranchที่มีอยู่ สิ่งนี้จะทำงานได้ดีเมื่อปลั๊กอินทำการสำรวจพื้นที่เก็บข้อมูลของตัวเองหรือฉันทริกเกอร์บิลด์ด้วย payload ด้วยตนเอง (เช่นcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters) แต่ฉันไม่สามารถทำสิ่งนี้ด้วยเบ็ด

การใช้ปลั๊กอิน GitLab Hook ทำให้ฉันสามารถรับข้อมูลที่จำเป็นใน JSON payload ได้ แต่ค่ามีคีย์ "ผิด":

  • gitlabMergeRequestId คือ id
  • gitlabTargetBranch คือ target_branch
  • gitlabSourceBranch คือ source_branch

ฉันได้พยายามกำหนดค่าพารามิเตอร์สร้างกับความต้องการ GitLab ผสานรวมเข้ากับสร้างปลั๊กอินเป็นและค่าตัวแปรเป็นName Default Valueน่าเสียดายที่ (และอาจตั้งใจ) ตัวแปรในDefault Valueฟิลด์จะไม่ถูกแทนที่ดังนั้นเจนกินส์จึงมองหาคำขอผสานที่มี ID ${id}และค่าสาขาที่คล้ายกัน

ฉันไม่พบวิธีกำหนดค่า payload ที่ส่งจาก GitLab และไม่มีตัวเลือกการกำหนดค่าสำหรับปลั๊กอิน GitLab Hook หรือชื่อพารามิเตอร์ที่ใช้โดยปลั๊กอิน GitLab Merge Request Builder

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

ตัวเลือกจริงอื่น ๆ ที่ฉันเห็นคือเปลี่ยนแหล่งที่มาของปลั๊กอิน แต่สิ่งนี้ทำให้การอัพเกรดเป็น PITA

ฉันมองข้ามสิ่งที่เห็นได้ชัดหรือไม่มีวิธีที่ง่ายกว่าในการเรียกใช้ Merge Request สร้างด้วย web hook จาก GitLab ถึง Jenkins?

คำตอบ:




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