สร้าง Dynamic parameters ด้วย Plugin “Active Choices” ใน jenkins กันเถอะ 1/2
บทความนี้จะมาสอนสร้าง dynamic and interactive job parameters ด้วย Plugin Active Choices แล้วสงสัยไหมว่ามันคืออะไร ???
อย่างที่เห็นมันคือการสร้าง parameters ให้มีความเกี่ยวเนื่องกันแบบทันทีทันใด
รออะไรอยู่มาเริ่มกันเลย Let’s Go
install Active Choices Plugin ใน Jenkins
Manage Jenkins -> Manage Plugin -> Available -> search : Active Choices Plug-in
สร้าง Dynamic parameters
ทั้ง 3 ชนิด คือ Parameter ที่ใช้สร้าง list ของข้อมูลโดยสามาถใช้ Groovy หรือ script
- Active Choices Parameter (list ข้อมูลธรรมดา)
- Active Choices Reactive Parameter (list ข้อมูล ที่จะแสดงเฉพาะค่าที่ตรงตามเงื่อนไขที่กำหนดจากตัว Paramter ที่เกี่ยวเนื่องกัน)
- Active Choices Reactive Reference Parameter (เหมือนกับ Active Choices Reactive Parameter ต่างกันตรงที่ สามารถสร้าง Form UI โดยใช้ HTML)
โจทย์ของเราก็คือ เราจะสร้าง Parameter Type และ Movie โดยถ้าเราเลือกชนิทที่กำหนดจะแสดงรายการของหนังตามชนิดนั้นๆ
อย่างแรกสร้าง ชนิดของหนัง ด้วย Active Choices Parameter กำหนดชื่อว่า Type ต่อไปเลือกใช้ Groovy Script กำหนด list ชนิดหนัง อย่างลืม Fallback Script คือ สคริปต์สำรอง ที่จะถูนำมาใช้แทนถ้า สคริปต์หลัก ที่เขียนมีปัญหา
Single Select คือ Select List
Multi Select คือ Mutiple Select List
ต่อไปสร้าง รายการหนัง ด้วย Active Choices Reactive Parameter กำหนดชื่อว่า Movie โดยกำหนดว่าแต่ละชนิดจะ ส่งรายชื่อหนังอะไรออกมา โดยตัว Groovy Script เราใช้ฟังก์ชัน equals() มาเป็นเงื่อนไขหลังในการตรวจสอบ
if(Type.equals("Action")){return ["Black Panther","Avengers: Endgame","John Wick"]}else if(Type.equals("Comedy")){return ["Jumanji","Despicable Me"]}else if(Type.equals("Drama")){return ["Me Before You"]}
กำหนด Reference parameter สามารถกำหนดได้หลายตัวด้วยการใช้ “ , ”
กดบันทึก -> Build With Parameters
ได้แล้ว Job Jenkins ที่มี Dynamic parameters
ส่งท้าย… เนื่องจากผู้เขียนประสบปัญหาที่ต้องทำงานหลายๆโปรแกรมพร้อมกัน แต่ดันมีปัญหาตรงที่ parameter ci+cd ของแต่ละโปรแกรมดันต่างกัน แต่ทำยังไงดี ขี้เกียจแล้วไปกดแต่ละ JOBจังเลย ฮ่าๆๆ เลยไปค้นว่ามีวิธีไหมที่จะเขียน Prameter ให้ค่าเปลี่ยนไปเปลี่ยนมาได้ จนมาเจอตัว “Active Choices Plugin” เลยลองใช้และมาแชร์ความรู้กันในบทความนี้ หวังว่าเพื่อนๆ จะได้รับประโยชน์จากบทความนี้นะคะ ❤
ต่อไปตอนที่ 2 จะสอน script ที่ได้ทำในบทความนี้ไปยัง pipeline script