วิธีการสั่ง Gitlab webhook trigger Jenkins pipeline build now

พอดีช่วงนี้มีงานทำ CI/CD ด้วย Jenkins + Gitlab และอยากที่จะทำ flow ให้เต็มระบบ

Push code to Gitlab => Gitlab Webhook =>triggered Jenkins build => run build

สิ่งที่ต้องทำเพิ่มที่ jenkins

  1. สร้าง user token เพิ่ม (Generate API Token)
    1.1 เลือก User เมนู (ฝั่งขวามือบน)
    1.2 เลือก Configure
    1.3 API Token กำหนดชื่อ “WEBHOOK_TOKEN” กด Genarate เก็บ token นี้ไว้เพราะจะไม่สามารถแก้ไขได้ ต้อง revoke แล้ว สร้างใหม่เท่านั้น

2. เพิ่ม Authenticate Token ของ Project (Add Authenticity Token)
2.1 แก้ไข Configure ของ Project

2.2 แก้ไขเลือก “Trigger builds remotely (e.g., from scripts)” จากนั้น random string มา 1 ชุด ใส่ค่าไปในช่อง (random string online) จากนั้น Save จบงานที่ต้องทำเพิ่มที่ jenkins

สิ่งที่ต้องทำเพิ่มที่ Gitlab

  1. เชื่อม gitlab webhook เข้ากับ jenkins
    1.1 เข้าไปที่ repo ของ Project เลือก Setting => Webhook
    1.2 URL ใส่
    format: https://<JENKINS_USER_ID>:<JENKINS_USER_TOKEN>@mydomainname.com/job/<JOB_NAME>/build?token=<AUTHENTICITY_TOKEN>
    ตัวอย่าง: https://admin:11ac4a1d0c0ff6956c38f2a22e39375325@mydomainname.com/job/ecc-pipeline-test/build?token=Vegj66W5m9BqRuYds5vbboznSL9czV43
    1.3 Push events ให้เลือก branch ที่ต้องการ push trigger ตัวอย่างเลือก “master” กดปุ่ม “Add webhook”

2. ทดสอบ hook

3. กลับไปที่ jenkins จะมีการ run build pipeline เกิดขึ้น

กรณี web hook สั่ง jenkins build แบบส่ง parameters

ต้องแก้ไข url ของ jenkins ตามข้างล่างนี้

format: format: https://<JENKINS_USER_ID>:<JENKINS_USER_TOKEN>@mydomainname.com/job/<JOB_NAME>/buildWithParameters?token=<AUTHENTICITY_TOKEN>&param1=value1&param2=value2

นอกนั้นอื่น ๆ ให้ทำเหมือนเดิมครับ

Senior Developer @Telecom, Full Stack Developer [Subscribe Me @poolsawat.com]

Senior Developer @Telecom, Full Stack Developer [Subscribe Me @poolsawat.com]