Jenkins บทช่วยสอนเกี่ยวกับ Pipeline: วิธีการสร้าง Jenkinsไฟล์ (ตัวอย่าง)
⚡ สรุปอย่างชาญฉลาด
Jenkins Pipeline เชื่อมโยงกระบวนการสร้าง ทดสอบ และปรับใช้ เข้าด้วยกันเป็นลำดับขั้นตอนที่ทำงานในรูปแบบโค้ด Jenkinsการบันทึกไฟล์ไว้ข้างๆ โครงการจะเปลี่ยนลำดับขั้นตอนนั้นให้กลายเป็นคำจำกัดความของการส่งมอบที่สามารถตรวจสอบได้และมีการกำหนดเวอร์ชัน

ความหมายของ Jenkins ท่อส่ง?
Jenkins Pipeline คือชุดปลั๊กอินที่สนับสนุนการบูรณาการและการใช้งาน ไปป์ไลน์การส่งมอบอย่างต่อเนื่องเป็นเซิร์ฟเวอร์อัตโนมัติที่ขยายได้สำหรับการสร้างไปป์ไลน์การส่งมอบแบบง่ายและซับซ้อนโดยใช้โค้ดผ่านภาษาเฉพาะของไปป์ไลน์ (Pipeline DSL) ไปป์ไลน์คือกลุ่มของเหตุการณ์ที่เชื่อมโยงกันตามลำดับ
ไปป์ไลน์การจัดส่งแบบต่อเนื่องคืออะไร? มันทำงานอย่างไร?
ใน Jenkins ในไปป์ไลน์ ทุกงานหรือเหตุการณ์จะมีส่วนเกี่ยวข้องกับเหตุการณ์อย่างน้อยหนึ่งเหตุการณ์ขึ้นไป ดังแสดงในแผนภาพด้านล่าง

ภาพด้านบนแสดงถึงไปป์ไลน์การส่งมอบอย่างต่อเนื่องใน Jenkinsประกอบด้วยสถานะต่างๆ ได้แก่ สร้าง (build), ปรับใช้ (deploy), ทดสอบ (test) และเผยแพร่ (release) แต่ละสถานะจะมีเหตุการณ์ของตัวเอง ซึ่งจะเกิดขึ้นตามลำดับ
ไปป์ไลน์การส่งมอบอย่างต่อเนื่อง (Continuous Delivery Pipeline) แสดงกระบวนการนั้นโดยอัตโนมัติ โดยนำซอฟต์แวร์จากระบบควบคุมเวอร์ชันไปสู่การเผยแพร่ผ่านลำดับการสร้างที่ทำซ้ำได้ การทดสอบ และขั้นตอนการใช้งาน
อะไรคือ a Jenkinsไฟล์?
Jenkins สามารถกำหนดไปป์ไลน์ได้ในไฟล์ข้อความที่เรียกว่า Jenkinsไฟล์นี้แสดงขั้นตอนการทำงานของไปป์ไลน์ในรูปแบบโค้ดโดยใช้ภาษาเฉพาะโดเมน (DSL) และเก็บทุกขั้นตอนที่จำเป็นในการรันไปป์ไลน์
ประโยชน์ของการใช้ Jenkinsไฟล์มีดังนี้:
- หนึ่ง Jenkinsไฟล์นี้สามารถสร้างไปป์ไลน์สำหรับทุกสาขาและดำเนินการคำขอพูล (pull request) ได้
- คุณสามารถตรวจสอบของคุณได้ Jenkins โค้ดบนไปป์ไลน์
- คุณสามารถตรวจสอบของคุณได้ Jenkins ท่อ
- นี่คือแหล่งที่มาเดียวสำหรับไปป์ไลน์ของคุณและสามารถแก้ไขได้โดยผู้ใช้หลายคน
สามารถกำหนดไปป์ไลน์ได้ใน Jenkins ส่วนติดต่อผู้ใช้บนเว็บหรือในเว็บ UI Jenkinsไฟล์ถูกบันทึกไว้ในระบบควบคุมเวอร์ชัน ไฟล์แบบประกาศขั้นต่ำจะมีโครงสร้างคงที่ คือ บล็อกไปป์ไลน์ เอเจนต์ และสเตจ ซึ่งแต่ละสเตจจะบรรจุหนึ่งสเตจต่อหนึ่งเฟส
pipeline { agent any stages { stage('Build') { steps { echo 'Building' } } stage('Test') { steps { echo 'Testing' } } stage('Deploy') { steps { echo 'Deploying' } } } }
การบันทึกไฟล์ไว้ที่ไดเร็กทอรีหลักของที่เก็บโค้ด จะเป็นการสร้างเวอร์ชันใหม่ให้กับไปป์ไลน์พร้อมกับโค้ดนั้น
ไวยากรณ์ของไปป์ไลน์แบบประกาศเทียบกับแบบสคริปต์
มีสองประเภทเป็น Jenkins ไวยากรณ์ของไปป์ไลน์ที่ใช้สำหรับการกำหนดค่าของคุณ Jenkinsไฟล์.
- ประกาศ
- สคริปต์
ประกาศ
ไวยากรณ์ของไปป์ไลน์แบบประกาศ (Declarative pipeline syntax) เป็นวิธีที่ง่ายกว่าที่คิด เพราะมันปฏิบัติตามลำดับชั้นที่กำหนดไว้ล่วงหน้า และยังควบคุมทุกแง่มุมของการดำเนินการไปป์ไลน์ได้อย่างตรงไปตรงมา
สคริปต์
สคริปต์ Jenkins ไปป์ไลน์ทำงานบน Jenkins ควบคุมผ่านตัวดำเนินการน้ำหนักเบา โดยใช้ทรัพยากรน้อยมากในการแปลงไปป์ไลน์เป็นคำสั่งอะตอมิก ทั้งสองแบบเขียนแตกต่างกันมาก ดังนั้นควรเลือกใช้เพียงแบบเดียว Jenkinsไฟล์.
⚠️ หมายเหตุ Jenkins ตอนนี้เรียกว่า เจ้านาย ตัวควบคุม.
ทำไมต้องใช้ Jenkins ท่อส่ง?
Jenkins เป็นการเปิด เซิร์ฟเวอร์การรวมอย่างต่อเนื่อง ที่ทำให้เป็นอัตโนมัติ กระบวนการพัฒนาซอฟต์แวร์คุณสามารถสร้างได้หลายรายการ งานอัตโนมัติ เลือกกรณีการใช้งานของคุณและเรียกใช้งานเป็นไปป์ไลน์เดียว
นี่คือเหตุผลที่คุณควรใช้ Jenkins ท่อส่ง:
- Pipeline ถูกพัฒนาขึ้นโดยใช้โค้ด ดังนั้นผู้ใช้หลายคนสามารถแก้ไขและเรียกใช้กระบวนการได้
- ระบบประมวลผลข้อมูลมีความเสถียรสูง: หากเซิร์ฟเวอร์รีสตาร์ทโดยไม่คาดคิด ระบบจะกลับมาทำงานต่อโดยอัตโนมัติ
- คุณสามารถหยุดกระบวนการทำงานชั่วคราวและเก็บไว้จนกว่าผู้ใช้จะป้อนข้อมูลได้
- ไปป์ไลน์ช่วยสนับสนุนโครงการขนาดใหญ่: สามารถรันงานหลายงานพร้อมกันได้ และยังสามารถใช้ไปป์ไลน์ในรูปแบบวนซ้ำได้อีกด้วย
Jenkins ท่อ Concepts
คำศัพท์สี่คำนี้ปรากฏซ้ำในทุกๆ Jenkinsไฟล์:
| เทอม | Descriptไอออน |
|---|---|
| ท่อ | ไปป์ไลน์คือชุดคำสั่งที่เขียนในรูปแบบโค้ด ซึ่งครอบคลุมกระบวนการสร้างทั้งหมดสำหรับการส่งมอบอย่างต่อเนื่อง (Continuous Delivery) ด้วยไปป์ไลน์ คุณสามารถสร้าง ทดสอบ และส่งมอบแอปพลิเคชันได้ |
| โหนด | เครื่องจักรซึ่ง Jenkins คำสั่ง `runs` เรียกว่า `node` บล็อก `node` ส่วนใหญ่ใช้ในไวยากรณ์ของไปป์ไลน์แบบสคริปต์ |
| ระยะ | บล็อกขั้นตอนประกอบด้วยขั้นตอนต่างๆ กระบวนการสร้าง ทดสอบ และปรับใช้ จะมารวมกันในแต่ละขั้นตอน ซึ่งเป็นสิ่งที่แสดงให้เห็นในมุมมองไปป์ไลน์ด้วย |
| ขั้นตอน | งานเดียวที่ดำเนินการตามกระบวนการเฉพาะในเวลาที่กำหนด ไปป์ไลน์คือชุดของขั้นตอนต่างๆ |
ติดตั้งปลั๊กอิน Build Pipeline ใน Jenkins
ปลั๊กอิน Build Pipeline สร้างมุมมองไปป์ไลน์ของงานขาเข้าและขาออก และเพิ่มทริกเกอร์สำหรับการแทรกแซงด้วยตนเอง
ติดตั้งตามขั้นตอนต่อไปนี้:
ขั้นตอน 1) คุณสามารถค้นหาการตั้งค่าสำหรับปลั๊กอินได้ที่... จัดการ Jenkins > จัดการปลั๊กอิน, แสดงด้านล่าง.
⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ปัจจุบัน Jenkins เผยแพร่ป้ายกำกับหน้าจอนี้ จัดการ Jenkins → ปลั๊กอินแท็บต่างๆ ทำงานตามที่อธิบายไว้ในที่นี้
หากคุณได้ติดตั้งปลั๊กอินแล้ว ปลั๊กอินจะแสดงอยู่ใต้แท็บที่ติดตั้ง
ขั้นตอน 2) หากยังไม่ได้ติดตั้งปลั๊กอิน จะปรากฏอยู่ในแท็บ "พร้อมใช้งาน"
เมื่อติดตั้งปลั๊กอินแล้ว:
วิธีการสร้าง Jenkins ท่อ
เมื่อคุณเข้าสู่ระบบ Jenkins หน้าปัด:
ขั้นตอน 1) คลิกที่ปุ่ม “+” ทางด้านซ้ายมือของคุณ Jenkins แดชบอร์ดสำหรับสร้างไปป์ไลน์
ขั้นตอน 2) กรอกข้อมูลในกล่องโต้ตอบมุมมองใหม่:
- ตั้งชื่อให้กับมุมมองไปป์ไลน์นี้ เราจะเรียกมันว่า “Guruใช้ "99 Pipeline" สำหรับการสาธิตนี้
- เลือก "สร้างมุมมองไปป์ไลน์" ในตัวเลือก
- คลิกตกลงตามที่แสดงด้านล่าง
ขั้นตอน 3) หน้าถัดไปจะขอรายละเอียดการกำหนดค่าเพิ่มเติม ยอมรับการตั้งค่าเริ่มต้น และตรวจสอบให้แน่ใจว่าคุณได้เลือกงานแรกภายใต้การตั้งค่าแล้ว
คลิกที่ปุ่ม "ใช้" แล้วคลิก "ตกลง"
จากนั้นตัวอย่างมุมมองขั้นตอนการผลิตของสินค้าของคุณจะปรากฏขึ้น:
เรียกใช้งานสร้างไปป์ไลน์
ขั้นตอน 1) เริ่มจากการเชื่อมโยงงานก่อน: เปิดงานแรกของคุณแล้วคลิกที่กำหนดค่า
ขั้นตอน 2) ตอนนี้ ในส่วน Build Triggers ให้เลือกตัวเลือก Build after other projects are built
ปัจจุบันมีห่วงโซ่สำหรับงานทั้งหมดของคุณแล้ว
ขั้นตอน 3) ติดตั้งปลั๊กอิน Build Pipeline view หากยังไม่ได้ติดตั้ง
ขั้นตอน 4) เกี่ยวกับ Jenkins บนแดชบอร์ด สร้างมุมมองโดยใช้ปุ่ม "+" เลือกตัวเลือก สร้างมุมมองไปป์ไลน์ แล้วคลิก ตกลง
ขั้นตอน 5) ภายใต้การตั้งค่ามุมมอง Pipeline ให้ค้นหา Pipeline Flow
ภายใต้หัวข้อการไหลของไปป์ไลน์ ให้เลือกงานเริ่มต้นที่จะเรียกใช้ ซึ่งเป็นงานที่เชื่อมโยงกับงานอื่นๆ ในขั้นตอนที่ 1 และ 2
Guru99 โครงการที่ 1 ถูกเลือกให้เป็นงานเริ่มต้น ดังนั้นงานที่เชื่อมโยงกันจะทำงานทีละงาน
ขณะที่ท่อส่งกำลังทำงาน สัญลักษณ์สีแดงและสีเขียวจะแสดงสถานะ: สีแดงหมายถึงล้มเหลว สีเขียวหมายถึงสำเร็จ
ในตัวอย่างนี้ ปุ่มเป็นสีเขียว แสดงว่ากระบวนการทำงานสำเร็จ
เล่น Jenkins ท่อ
คลิกที่ปุ่ม Run เพื่อเรียกใช้งาน Jenkins ขั้นตอนการทำงานจะออกมาประมาณนี้:
ตัวอย่างข้างต้นสร้างโปรแกรม "helloworld.java" อย่างง่ายๆ แต่โครงการจริงนั้นมีกระบวนการทำงานที่ซับซ้อนกว่ามาก ดังที่เห็นได้จากภาพรวมด้านล่าง
⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ปลั๊กอิน Build Pipeline view เป็นวิธีการเดิมในการแสดงภาพงานแบบ freestyle ที่เชื่อมโยงกัน แนวทางปฏิบัติในปัจจุบันกำหนดขั้นตอนเดียวกันนี้ในรูปแบบอื่น Jenkinsไฟล์สีน้ำเงิน Ocean ไม่ได้รับการปรับปรุงอีกต่อไปแล้ว
แนวปฏิบัติที่ดีที่สุดโดยใช้ Jenkins ท่อ
เจ็ดนิสัยสำคัญที่จะช่วยให้ระบบท่อส่งข้อมูลสามารถบำรุงรักษาได้:
- ใช้ของแท้ Jenkins ท่อ
- พัฒนาไปป์ไลน์ของคุณเป็นโค้ด
- งานใดๆ ที่ไม่ใช่การตั้งค่าในไปป์ไลน์ของคุณควรเกิดขึ้นภายในบล็อกสเตจ
- งานวัสดุใดๆ ในไปป์ไลน์จะต้องดำเนินการภายในบล็อกโหนด
- ห้ามใช้ข้อมูลป้อนเข้าภายในบล็อกโหนด
- อย่าตั้งค่าตัวแปรสภาพแวดล้อมด้วยตัวแปรส่วนกลาง env
- ล้อมอินพุตของคุณไว้ในระยะหมดเวลา













