สร้าง Dynamic parameters ด้วย Plugin “Active Choices” ใน jenkins กันเถอะ 1/2

Panumat Mk
3 min readJan 23, 2021

--

บทความนี้จะมาสอนสร้าง dynamic and interactive job parameters ด้วย Plugin Active Choices แล้วสงสัยไหมว่ามันคืออะไร ???

Dynamic and interactive job parameters โดย Active Choices Plugin

อย่างที่เห็นมันคือการสร้าง parameters ให้มีความเกี่ยวเนื่องกันแบบทันทีทันใด

รออะไรอยู่มาเริ่มกันเลย Let’s Go

install Active Choices Plugin ใน Jenkins

Manage Jenkins -> Manage Plugin -> Available -> search : Active Choices Plug-in

plugin หลังจาก install เสร็จเรียบร้อย

สร้าง Dynamic parameters

Parameter types ของ Active Choices Plugin

ทั้ง 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 คือ สคริปต์สำรอง ที่จะถูนำมาใช้แทนถ้า สคริปต์หลัก ที่เขียนมีปัญหา

กำหนด Paramter ชนิดของหนัง
ชนิดการแสดงผล

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"]}
กำหนด Paramter ชนิดของรายการหนัง

กำหนด Reference parameter สามารถกำหนดได้หลายตัวด้วยการใช้ “ , ”

กำหนด Reference parameter

กดบันทึก -> Build With Parameters

ได้แล้ว Job Jenkins ที่มี Dynamic parameters

ส่งท้าย… เนื่องจากผู้เขียนประสบปัญหาที่ต้องทำงานหลายๆโปรแกรมพร้อมกัน แต่ดันมีปัญหาตรงที่ parameter ci+cd ของแต่ละโปรแกรมดันต่างกัน แต่ทำยังไงดี ขี้เกียจแล้วไปกดแต่ละ JOBจังเลย ฮ่าๆๆ เลยไปค้นว่ามีวิธีไหมที่จะเขียน Prameter ให้ค่าเปลี่ยนไปเปลี่ยนมาได้ จนมาเจอตัว “Active Choices Plugin” เลยลองใช้และมาแชร์ความรู้กันในบทความนี้ หวังว่าเพื่อนๆ จะได้รับประโยชน์จากบทความนี้นะคะ ❤

ต่อไปตอนที่ 2 จะสอน script ที่ได้ทำในบทความนี้ไปยัง pipeline script

สร้าง Dynamic parameters ด้วย Plugin “Active Choices” ใน jenkins กันเถอะ ( แจก script pipeline) 2/2

References

https://plugins.jenkins.io/uno-choice/

--

--