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

ภาพด้านบนแสดงถึงขั้นตอนการส่งมอบอย่างต่อเนื่องในเจนกินส์ ประกอบด้วยกลุ่มสถานะที่เรียกว่า build, Deploy, Test และ Release เหตุการณ์เหล่านี้เชื่อมโยงถึงกัน ทุกรัฐมีเหตุการณ์ของตัวเอง ซึ่งทำงานเป็นลำดับที่เรียกว่าไปป์ไลน์การจัดส่งแบบต่อเนื่อง
ท่อส่งแบบต่อเนื่องเป็นกระบวนการอัตโนมัติที่จะแสดงกระบวนการของคุณในการได้รับซอฟต์แวร์สำหรับการควบคุมเวอร์ชัน ดังนั้น การเปลี่ยนแปลงทุกอย่างที่เกิดขึ้นกับซอฟต์แวร์ของคุณจะต้องผ่านกระบวนการที่ซับซ้อนจำนวนหนึ่งก่อนที่จะเผยแพร่ นอกจากนี้ยังเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ในลักษณะที่เชื่อถือได้และทำซ้ำได้ และความก้าวหน้าของซอฟต์แวร์ที่สร้างขึ้นผ่านขั้นตอนต่างๆ การทดสอบ และการปรับใช้
JenkinsFile คืออะไร?
ไปป์ไลน์เจนกินส์สามารถกำหนดได้โดยใช้ไฟล์ข้อความที่เรียกว่า JenkinsFile.jpg คุณสามารถใช้ไปป์ไลน์เป็นโค้ดได้โดยใช้ JenkinsFile และสามารถกำหนดได้โดยใช้ภาษาเฉพาะโดเมน (DSL) ด้วย JenkinsFile คุณสามารถเขียนขั้นตอนที่จำเป็นสำหรับการรันไปป์ไลน์ Jenkins
ประโยชน์ของการใช้ JenkinsFile เป็น:
- คุณสามารถสร้างไปป์ไลน์โดยอัตโนมัติสำหรับทุกสาขาและดำเนินการคำขอดึงด้วยเพียงอันเดียว JenkinsFile.jpg
- คุณสามารถตรวจสอบโค้ด Jenkins ของคุณได้จากไปป์ไลน์
- คุณสามารถตรวจสอบไปป์ไลน์ Jenkins ของคุณได้
- นี่คือแหล่งที่มาเดียวสำหรับไปป์ไลน์ของคุณและสามารถแก้ไขได้โดยผู้ใช้หลายคน
JenkinsFile สามารถกำหนดได้โดย Web UI หรือไฟล์ Jenkins
ไวยากรณ์ไปป์ไลน์แบบประกาศเทียบกับแบบสคริปต์:
ไวยากรณ์ไปป์ไลน์ Jenkins มีสองประเภทที่ใช้สำหรับกำหนด JenkinsFile ของคุณ
- ประกาศ
- สคริปต์
ประกาศ:
ไวยากรณ์ไปป์ไลน์แบบประกาศนำเสนอวิธีง่ายๆ ในการสร้างไปป์ไลน์ ประกอบด้วยลำดับชั้นที่กำหนดไว้ล่วงหน้าเพื่อสร้างไปป์ไลน์ Jenkins ช่วยให้คุณสามารถควบคุมการดำเนินการไปป์ไลน์ทุกด้านในลักษณะที่เรียบง่ายและตรงไปตรงมา
สคริปต์:
ไพพ์ไลน์ Jenkins ที่มีสคริปต์จะทำงานบน Jenkins master ด้วยความช่วยเหลือของตัวดำเนินการน้ำหนักเบา ซึ่งใช้ทรัพยากรเพียงเล็กน้อยในการแปลไพพ์ไลน์เป็นคำสั่งแบบอะตอมิก ทั้งไวยากรณ์แบบประกาศและแบบสคริปต์นั้นแตกต่างกันและถูกกำหนดไว้ต่างกันโดยสิ้นเชิง
เหตุใดจึงใช้ไปป์ไลน์ของเจนกิน
เจนกินส์เป็นคนเปิด เซิร์ฟเวอร์การรวมอย่างต่อเนื่อง ซึ่งมีความสามารถในการรองรับกระบวนการพัฒนาซอฟต์แวร์แบบอัตโนมัติ คุณสามารถสร้างงานอัตโนมัติได้หลายงานโดยใช้กรณีการใช้งาน และเรียกใช้เป็นไปป์ไลน์ Jenkins
นี่คือเหตุผลที่คุณควรใช้ไปป์ไลน์ Jenkins:
- ไปป์ไลน์ Jenkins ถูกนำมาใช้เป็นโค้ดที่อนุญาตให้ผู้ใช้หลายคนแก้ไขและดำเนินการกระบวนการไปป์ไลน์
- ท่อมีความแข็งแกร่ง ดังนั้นหากเซิร์ฟเวอร์ของคุณรีสตาร์ทโดยไม่คาดคิด ไปป์ไลน์จะกลับมาทำงานต่อโดยอัตโนมัติ
- คุณสามารถหยุดกระบวนการไปป์ไลน์ชั่วคราวและรอให้ดำเนินการต่อจนกว่าจะมีอินพุตจากผู้ใช้
- Jenkins Pipelines สนับสนุนโครงการขนาดใหญ่ คุณสามารถรันงานได้หลายงาน และใช้ไปป์ไลน์แบบวนซ้ำได้
ไปป์ไลน์เจนกินส์ Concepts
เทอม | Descriptไอออน |
---|---|
ท่อ | ไปป์ไลน์คือชุดคำสั่งที่ให้ไว้ในรูปแบบของโค้ดสำหรับการจัดส่งอย่างต่อเนื่อง และประกอบด้วยคำสั่งที่จำเป็นสำหรับกระบวนการสร้างทั้งหมด ด้วยไปป์ไลน์ คุณสามารถสร้าง ทดสอบ และส่งมอบแอปพลิเคชันได้ |
โหนด | เครื่องที่ Jenkins ทำงานเรียกว่าโหนด บล็อกโหนดส่วนใหญ่จะใช้ในไวยากรณ์ไปป์ไลน์แบบสคริปต์ |
ระยะ | บล็อกขั้นประกอบด้วยชุดของขั้นตอนในไปป์ไลน์ นั่นคือกระบวนการสร้าง ทดสอบ และปรับใช้ทั้งหมดมารวมกันในขั้นตอนเดียว โดยทั่วไป สเตจบล็อกจะใช้เพื่อแสดงภาพกระบวนการไปป์ไลน์ของเจนกินส์ |
ขั้นตอน | ขั้นตอนไม่ใช่อะไรนอกจากงานเดียวที่ดำเนินการกระบวนการเฉพาะในเวลาที่กำหนด ไปป์ไลน์เกี่ยวข้องกับหลายขั้นตอน |
ติดตั้ง Build Pipeline Plugin ใน Jenkins
กับ สร้างท่อ ปลั๊กอิน คุณสามารถสร้างมุมมองไปป์ไลน์ของงานขาเข้าและขาออก และสร้างทริกเกอร์ที่ต้องมีการแทรกแซงด้วยตนเอง
นี่คือวิธีการติดตั้ง สร้างท่อ ปลั๊กอินในเจนกินส์ของคุณ:
ขั้นตอนที่ 1) การตั้งค่าสำหรับปลั๊กอินสามารถพบได้ภายใต้
จัดการเจนกินส์> จัดการปลั๊กอิน
หากคุณได้ติดตั้งปลั๊กอินแล้ว ปลั๊กอินจะแสดงอยู่ใต้แท็บที่ติดตั้ง
ขั้นตอนที่ 2) หากคุณไม่ได้ติดตั้งปลั๊กอินไว้ก่อนหน้านี้
มันปรากฏอยู่ใต้ Available แถบ
เมื่อคุณติดตั้งสำเร็จแล้ว สร้างท่อ ปลั๊กอินใน Jenkins ของคุณ ให้ทำตามขั้นตอนเหล่านี้เพื่อสร้างไปป์ไลน์ Jenkins ของคุณ:
วิธีสร้างไปป์ไลน์เจนกินส์
เมื่อคุณลงชื่อเข้าใช้แดชบอร์ด Jenkins ของคุณแล้ว:
ขั้นตอนที่ 1) คลิกที่ “+” ที่ด้านซ้ายมือของแดชบอร์ด Jenkins เพื่อสร้างไปป์ไลน์
ขั้นตอนที่ 2)
- คุณจะถูกขอให้ตั้งชื่อให้กับมุมมองไปป์ไลน์ เราจะเรียกมันว่า “ท่อ Guru99” ตลอดระยะเวลาของการสาธิตนี้
- เลือก สร้างมุมมองไปป์ไลน์ ภายใต้ ตัวเลือก
- คลิก ok
ขั้นตอนที่ 3) ในหน้าถัดไป คุณจะถูกขอให้ระบุรายละเอียดเพิ่มเติมเพื่อกำหนดค่า Jenkins Pipeline ของคุณ เพียงยอมรับการตั้งค่าเริ่มต้น และตรวจสอบให้แน่ใจว่าคุณเลือกงานแรกภายใต้การตั้งค่า
คลิกที่ สมัครสมาชิก แล้วก็ OK.
นี่จะแสดงมุมมองตัวอย่างไปป์ไลน์ของรายการของคุณ ตามที่ระบุด้านล่าง:
เรียกใช้งานสร้างไปป์ไลน์
ขั้นตอนที่ 1) สำหรับการรันการสร้างไปป์ไลน์ คุณต้องเชื่อมโยงงานของคุณก่อน สำหรับสิ่งนี้ ให้ไปที่งานแรกของคุณแล้วคลิกกำหนดค่า
ขั้นตอนที่ 2) ตอนนี้ภายใต้ สร้างทริกเกอร์ตรวจสอบไฟล์ สร้างหลังจากสร้างโครงการอื่นแล้ว ตัวเลือก
ดังนั้น ห่วงโซ่สำหรับงานทั้งหมดของคุณจึงได้ถูกสร้างขึ้น
ขั้นตอนที่ 3) ติดตั้ง สร้างมุมมองไปป์ไลน์ ปลั๊กอินหากคุณยังไม่ได้ติดตั้งไว้
ขั้นตอนที่ 4) ไปที่แดชบอร์ด Jenkins ของคุณและสร้างมุมมองโดยคลิกที่ “+" ปุ่ม. เลือก สร้างมุมมองไปป์ไลน์ ตัวเลือกและคลิก OK.
ขั้นตอนที่ 5) ภายใต้ การกำหนดค่ามุมมองไปป์ไลน์ค้นหา การไหลของท่อ.
ภายใต้ การไหลของท่อให้เลือกงานเริ่มต้นที่จะรัน ตอนนี้เลือกงานที่มีความเชื่อมโยงกับงานอื่น ดังแสดงใน ขั้นตอนที่ 1 and ขั้นตอนที่ 2.
ที่นี่เราได้เลือกแล้ว กูรู99โปรเจ็ค1 เป็นงานเริ่มแรกและผูกมัดกับงานอื่น ดังนั้นงานจะดำเนินไปตามไปป์ไลน์ทีละงาน
เมื่อไปป์ไลน์ Jenkins ทำงาน คุณสามารถตรวจสอบสถานะได้โดยใช้สัญลักษณ์สถานะสีแดงและสีเขียว สีแดงหมายถึงไปป์ไลน์ล้มเหลว ในขณะที่สีเขียวหมายถึงความสำเร็จ
ในตัวอย่างไปป์ไลน์ของ Jenkins เราจะเห็นว่าปุ่มเป็นสีเขียว ดังนั้นไปป์ไลน์จึงประสบความสำเร็จ
ใช้งานไปป์ไลน์ Jenkins
คลิกที่ วิ่ง เพื่อรันไปป์ไลน์เจนกินส์ มันจะมีลักษณะดังนี้:
ในตัวอย่างสคริปต์ Jenkins Pipeline ด้านบน เราจะสาธิตโปรแกรม “helloworld.java” ง่ายๆ แต่ในโปรเจ็กต์แบบเรียลไทม์ คุณจะต้องรับผิดชอบในการสร้างและสร้าง Pipeline ที่ซับซ้อนใน Jenkins ดูตัวอย่างมุมมอง Pipeline ด้านล่าง
แนวทางปฏิบัติที่ดีที่สุดโดยใช้ Jenkins Pipeline:
- ใช้ท่อส่งเจนกินส์ของแท้
- พัฒนาไปป์ไลน์ของคุณเป็นโค้ด
- งานใดๆ ที่ไม่ใช่การตั้งค่าในไปป์ไลน์ของคุณควรเกิดขึ้นภายในบล็อกสเตจ
- งานวัสดุใดๆ ในไปป์ไลน์จะต้องดำเนินการภายในบล็อกโหนด
- อย่าใช้อินพุตภายในบล็อกโหนด
- อย่าตั้งค่าตัวแปรสภาพแวดล้อมด้วยตัวแปรส่วนกลาง env
- ล้อมอินพุตของคุณไว้ในระยะหมดเวลา