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

Panumat Mk
3 min readJan 30, 2021
cat

จากบทความที่แล้วเราสอนทำ Dynamic parameters ผ่านหน้า UI ของ Jenkins แต่ยังมีข้อเสียอยู่นะ ข้อเสียคือ ถ้ากรณีที่เราเผลอลบเราก็จะต้องเขียนมันขึ้นมาใหม่ ทีนี้ตอนที่ 2 นี่ เราจะเอา Dyanmic parameters ไปไว้ยัง pipeline Jenkins เมื่อเราเขียนแล้วก็เอาขึ้น GIT ตัว script เราก็จะอยู่ตลอดไป ซึ่งการ backup นี้นะมันเป็นหัวในหลักของชาวไอทีเลย

ย้าย Dynamic Parameters มาไว้ใน pipeline กัน เราจะยึดตามโจทย์เดิมนะคะ หน้าตาแบบนี้

Dynamic and interactive job parameters โดย Active Choices Plugin

เริ่มต้นกันเลย ก่อนอื่นติดตั้ง plugin ถ้าใครยังไม่รู้วิธีเข้าไปอ่านใน ตอนที่ 1 ได้เลย

เริ่มเขียน Jenkinsfile

Jenkinsfile คือ file สำหรับเขียน Jenkins Pipeline เป็น filetext ที่ไม่มีนามสกุล สำหรับ Syntax สามารถดูเพิ่มเติมได้ ที่นี่

สร้างตัวแปรไว้สำหรับเก็บค่า list value ของเรา

declare variable jenkins pipeline
  • บรรทัดที่ 1–8 สร้างตัวแปร movieNames เป็นตัวแปรที่สำหรับ reference กับตัวแปร movieTypes param
  • บรรทัดที่ 10–11 สร้างตัวแปร movieTypes เป็นตัวแปรหลัก return string

สร้าง properties สำหรับประกาศ parameters

declare parameters jenkins pipeline

บรรทัดที่ 16–38 เป็นการสร้าง parameter MovieType

บรรทัดที่ 17 บอก type ของ input

บรรทัดที่ 21 ประกาศชื่อ

บรรทัดที่ 29 กำหนด script สำหรับ return เมื่อ script หลักมีปัญหา

บรรทัดที่ 34 กำหนด script หลักที่ต้องการ

บรรทัดที่ 39–62 เป็นการสร้าง parameter MovieName

บรรทัดที่ 40 บอก type ของ input

บรรทัดที่ 44 ประกาศชื่อ

บรรทัดที่ 46 กำหนด param ที่ต้องการ reference (สามารถกำหนดได้หลายตัวโดยการใช้ “ , ”)

บรรทัดที่ 53 กำหนด script สำหรับ return เมื่อ script หลักมีปัญหา

บรรทัดที่ 59 กำหนด script หลักที่ต้องการ

Choice Type Parameters มีทั้งหมด 4 อัน คือ PT_SINGLE_SELECT, PT_MULTI_SELECT, PT_RADIO, PT_CHECKBOX

สร้าง pipeline สำหรับทดสอบ

jenkins pipeline

Pipeline อันนี้จะ print ชื่อของ Movie Type กับ Movie Name ที่เราเลือก เมื่อเรากด build ก็จะได้ผลดังนี้

console output jenkins

สำหรับคนที่อยากลองเล่นสามารถเอา pipeline จาก git ไปลองได้เลย

สร้าง Job Jenkins เลือก pipeline เลือกเอา script จาก SCM เลือก git ระบุ url และบอก path ที่เก็บ Jenkinsfile (สำหรับตัว pipeline จาก git ต้อง build ก่อน 1 ที ครั้งต่อไปถึงจะมี parameters ขึ้นมานะคะ)

How to use script pipeline form git.
How to direct script pipeline.

source code pipeline สามารถเข้าไปดูได้ที่ Githup

สำหรับใครที่อยากลองทำก็สามารถไป create parameters ได้ง่ายที่ Jenkins -> Pipeline Syntax -> Steps-> properties: Set job properties -> This project is paramterized -> เลือก Add parameters -> Generate Pipeline Script

Generate Pipeline Script From Pipeline Syntax

จบแล้วหลังจากนี้ก็สามารถเขียน Dynamic Parameters ได้แล้ว ที่จริงมันยังมีความสามารถมากกว่านี้นะ สามารถไปอ่านเพิ่มได้ที่ website official ของ Active Choices ที่แปะไว้ของล่างนะคะ สำหรับบทความนี้ขอขอบคุณผู้อ่านมากๆเลยนะคะ ❤

References

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

--

--