สร้าง Jenkins Job แรก: Build โปรเจกต์ PHP
หลังจากที่เราติดตั้งและตั้งค่า Jenkins ในบทที่แล้ว ตอนนี้เราพร้อมที่จะสร้าง Jenkins Job แรกเพื่อ Build โปรเจกต์ PHP ของเราแล้ว Job ใน Jenkins ก็คือ Task หรือชุดคำสั่งที่เราต้องการให้ Jenkins ทำงานให้เราอัตโนมัติ ในบทนี้เราจะมาเรียนรู้วิธีสร้าง Job อย่างง่าย เพื่อดึงโค้ดจาก Source Code Management (เช่น Git) และทำการ Build โปรเจกต์ PHP ของเรา
การสร้าง Jenkins Job
เริ่มต้นด้วยการ Login เข้าสู่ Jenkins ด้วย User ที่คุณสร้างไว้ในบทที่แล้ว จากนั้นทำตามขั้นตอนดังนี้:
- บน Dashboard ของ Jenkins ให้คลิกที่ "New Item"
- ใส่ชื่อ Job ที่คุณต้องการ (เช่น "My-PHP-Project-Build")
- เลือก "Freestyle project"
- คลิก "OK"
หลังจากคลิก "OK" คุณจะเข้าสู่หน้า Configuration ของ Job ที่สร้างขึ้น ในหน้านี้เราจะกำหนดค่าต่างๆ ที่เกี่ยวข้องกับการ Build โปรเจกต์ของเรา
การกำหนด Source Code Management
ส่วนแรกที่เราต้องกำหนดคือ Source Code Management (SCM) ซึ่งเป็นที่เก็บโค้ดของเรา ในตัวอย่างนี้เราจะใช้ Git เป็น SCM ที่ใช้กันอย่างแพร่หลาย
- ในหน้า Configuration ของ Job ให้เลื่อนลงมาที่หัวข้อ "Source Code Management"
- เลือก "Git"
- ในช่อง "Repository URL" ให้ใส่ URL ของ Git Repository ของโปรเจกต์ PHP ของคุณ (เช่น
https://github.com/your-username/your-php-project.git) - (Optional) หาก Repository ของคุณเป็น Private Repository คุณจะต้องกำหนด Credentials ใน Jenkins เพื่อให้ Jenkins สามารถเข้าถึง Repository ได้
- ในช่อง "Branch Specifier (blank for 'any')" ให้ใส่ Branch ที่คุณต้องการ Build (เช่น
*/mainหรือ*/master) หากคุณต้องการ Build Branch หลัก
คำศัพท์ที่ควรรู้:
- Repository URL: ที่อยู่ของ Git Repository ที่เก็บโค้ดของคุณ
- Branch: สาขาของโค้ดใน Git (เช่น main, master, develop)
- Credentials: ข้อมูลประจำตัว (เช่น Username และ Password) ที่ใช้ในการเข้าถึง Repository
ตัวอย่าง:
Repository URL: https://github.com/example/my-php-app.git
Branch Specifier (blank for 'any'): */main
การเพิ่ม Build Steps
หลังจากกำหนด SCM แล้ว เราต้องกำหนด Build Steps ซึ่งเป็นชุดคำสั่งที่ Jenkins จะรันเพื่อ Build โปรเจกต์ของเรา สำหรับโปรเจกต์ PHP ทั่วไป เราอาจมี Build Steps ดังนี้:
- ติดตั้ง Dependencies ด้วย Composer
- รัน Unit Tests
- สร้าง Deployment Package (เช่น ZIP file)
ในตัวอย่างนี้เราจะเพิ่ม Build Step ง่ายๆ คือการติดตั้ง Dependencies ด้วย Composer
- ในหน้า Configuration ของ Job ให้เลื่อนลงมาที่หัวข้อ "Build"
- คลิก "Add build step"
- เลือก "Execute shell" (หรือ "Execute Windows batch command" หากคุณใช้ Windows)
- ในช่อง Command ให้ใส่คำสั่งที่ต้องการรัน ในกรณีนี้คือ
composer install
คำอธิบาย:
- composer install: คำสั่งนี้จะติดตั้ง Dependencies ที่กำหนดไว้ในไฟล์
composer.jsonของโปรเจกต์ PHP ของคุณ
ตัวอย่าง:
composer install
หากคุณต้องการรัน Unit Tests คุณสามารถเพิ่ม Build Step อีกอันและใช้คำสั่ง ./vendor/bin/phpunit (หรือ php vendor/bin/phpunit ถ้า ./vendor/bin ไม่ได้อยู่ใน PATH) เพื่อรัน Unit Tests ที่เขียนด้วย PHPUnit
ตัวอย่าง:
./vendor/bin/phpunit
หลังจากกำหนด Build Steps เรียบร้อยแล้ว ให้คลิก "Save" เพื่อบันทึก Configuration ของ Job
การรัน Build
หลังจากบันทึก Job แล้ว คุณสามารถรัน Build ได้โดยคลิกที่ "Build Now" บนหน้า Job
Jenkins จะเริ่มทำการ Build โดยดึงโค้ดจาก Git Repository และรัน Build Steps ที่คุณกำหนดไว้ คุณสามารถดู Log ของการ Build ได้โดยคลิกที่หมายเลข Build (เช่น "#1") ใน Build History
การตรวจสอบผลลัพธ์:
- หาก Build สำเร็จ (Success) คุณจะเห็นข้อความ "SUCCESS" ใน Build History
- หาก Build ล้มเหลว (Failure) คุณจะเห็นข้อความ "FAILURE" ใน Build History และคุณสามารถดู Log เพื่อหาสาเหตุของความผิดพลาดได้
สรุป
ในบทนี้เราได้เรียนรู้วิธีสร้าง Jenkins Job แรกเพื่อ Build โปรเจกต์ PHP ของเรา โดยเราได้เรียนรู้วิธีการกำหนด Source Code Management และการเพิ่ม Build Steps อย่างง่าย ในบทถัดไปเราจะมาดูวิธีการเพิ่ม Test Step เพื่อรัน Unit Tests ใน Jenkins และตรวจสอบคุณภาพของโค้ดของเรา
แบบฝึกหัด
- สร้าง Jenkins Job สำหรับโปรเจกต์ PHP ของคุณ
- กำหนด Git Repository ของโปรเจกต์ของคุณเป็น SCM
- เพิ่ม Build Step เพื่อติดตั้ง Dependencies ด้วย Composer
- รัน Build และตรวจสอบผลลัพธ์
- (Optional) หากโปรเจกต์ของคุณมี Unit Tests ให้เพิ่ม Build Step เพื่อรัน Unit Tests ด้วย PHPUnit