Git hook สั่งให้ Jenkins ทำงานหลัง git push ไปที่ Git Server

การใช้ git hook (post-receive) สั่งงาน Jenkins (build Project) โดยคำสั่งใน post-receive จะทำงานหลังจากที่เรามีการใช้คำสั่ง git push ดังนั้นหากเราต้องการจะทำอะไรหลังจาก push โค้ดเสร็จ เราก็สามารถไปเพิ่มคำสั่งไว้ในไฟล์ hooks/post-receive ได้เลย

จากที่เราได้สร้าง Git Server และติดตั้ง Jenkins ไปแล้ว ก็ถึงเวลาใช้งานกันซะที ^^ หลังจากที่มีการสร้าง job ใน Jenkins เราสามารถสั่งให้ Jenkins รันคำสั่ง build project ผ่านลิงค์ได้ ซึ่งลิงค์จะอยู่ในรูปแบบ

http://jenkins-server/job/projectname/build

แสดงว่าเราสามารถใช้ curl มาที่ลิงค์นี้ (http://jenkins-server/job/projectname/build) เพื่อสั่งให้ Jenkins ทำงานได้เหมือนกัน

เพิ่ม curl ใน post-receive ซึ่งไฟล์นี้จะอยู่ที่

/home/git/project.git/hooks

โดยที่ project.git จะเป็น remote repository ที่เราสร้างไว้ใน Git Server ของเรานะครับ

#!/bin/sh
curl http://jenkins-server/job/projectname/build

หลังจากที่เราเพิ่มคำสั่ง curl เสร็จแล้ว ถ้าเรามีการ push โค้ด Jenkins ก็จะถูกสั่งให้ทำงานผ่าน post-receive ที่เราเพิ่มไว้ครับ ^^