สำหรับวันนี้ ผมมี Extensions ของ VSCODE ที่มาแนะนำ เพื่อช่วยให้เราสามารถจัดการ JenkinsFile ให้มันง่ายขึ้นครับ ดังนี้ครับ
- Jenkinsfile - Visual Studio Marketplace
- Jenkins Pipeline Linter Connector - Visual Studio Marketplace
อธิบายเต็มๆ มาดูต่อจากนี้ได้เลยครับ
Jenkinsfile คือ อะไร ?
- การเขียน Code เพื่อสั่งให้ตัว Jenkins มันทำงาน โดยอิงจากภาษา Groovy (Java base) เป็นหลักครับ แต่ถ้าต้องการใช้ภาษาอื่นๆ สามารถลง Plugin มาเสริมได้ครับ
- พอทำแบบนี้ Step การทำ CI/CD ถูกจัดเก็บเป็น Code ทำให้ และเอาไปฝาก Repository ของงานเราได้เลยครับ ข้อดี Code ไปไหน Step CI/CD ไปด้วยกันด้วย ไม่ต้องมา Config ใหม่
- Keyword ในงานกลุ่มนี้ คือ Pipeline as Code ครับ
Jenkinsfile [formerly JenkinsFile Support]
- Plugin ตัวนี้ เป็นตัวที่ช่วยให้เราสามารถเขียน JenkinFile ได้ง่ายขึ้น เพราะมีตัวที่ช่วย
- syntax highlighting
- snippets
- completion
- diagnostics
- การติดตั้ง Search จากหน้า Extension ของ VSCode ได้เลยครับ
- Before - ดูอย่างยาก
- After - syntax highlighting ดูง่าย ต้องมาจำ Syntax และ
Jenkins Pipeline Linter Connector
- Plugin ตัวนี้ หน้าที่ของมันช่วยตรวจสอบความถูกต้องของ Jenkinsfile ก่อนที่เราจะ Commit เข้า Source Control อย่าง Git ครับ
- ปัญหาที่เราเจอกันประจำ Code เทพครับ แต่ไปพังที่ ฺBuild Server นี่แหละ 555 จะเจอ Error ประมาณนี้
Syntax error: "(" unexpected [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: script returned exit code 2 Finished: FAILURE หรือ แบบอื่นๆ WorkflowScript: 69: expecting ''', found '\r' @ line 69, column 123. invest/invest-ui-winform.git"]
- การติดตั้ง Search จากหน้า Extension ของ VSCode ได้เลยครับ
- มาดู Config ที่สำคัญครับ
- กำหนด Config ของ Extension โดยไปที่ File > Preference > Setting หรือกดปุ่ม Ctrl + ,
- Search "Jenkins" พบ Config ดังนี้
- แต่ละ Config มีรายละเอียด ดังนี้
Key | Value |
---|---|
jenkins.pipeline.linter.connector.url | URL ชอง Jenkins https://[your_jenkins_server:port]/pipeline-model-converter/validate |
jenkins.pipeline.linter.connector.crumbUrl | ใส่ Crumb URL ใข้กรณีที่ Jenkins เรามีป้องกัน Cross-site Request Forgery (CSRF) โดยมี Template URL ดังนี้ https://[your_jenkins_server:port]/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)) |
jenkins.pipeline.linter.connector.user | user ของ jenkins แนะนำว่าใช้สิทธิต่ำๆ พอนะ |
jenkins.pipeline.linter.connector.pass | pass ของ jenkins แนะนำว่าใช้สิทธิต่ำๆ พอนะ |
jenkins.pipeline.linter.connector.token | ถ้าไม่ใช่ user + pass ใช้ Token ได้นะ แต่ของผมใช้ ภายในองค์กร เลยใช้ user + pass แหละ |
jenkins.pipeline.linter.connector.strictssl | ติ๊ก เพื่อให้มัน Error Certificate แบบใช้ใน Private Network เราอาจจะไม่ได้กำหนด SSL ใช้มัน ก็ติ๊ก "Set to false to allow invalid ssl connections" |
- ลองเติมค่าแต่ละอันครับ - ssl ถ้าใน Local ไม่น่าจะมีใคร Config นะครับ แต่ถ้า Deploy Jenkin บน Cloud ให้มันใช้ ssl เถอะครับ
- ทดสอบกันครับ
- ลองเปิด Jenkinsfile ทีมีการแก้ไขทำงานมาครับ
- จากนั้นกด Ctrl + P เพื่อเปิด Command Palette และ Search > Validate จะขึ้นตัว Validate Jenkinsfile ครับ เลือกเลยครับ
- ตัว Extension มันส่ง Jenkinsfile ของเราไปตรวจ Syntax ที่ Server ครับ อย่างของผมมี Error ตรงบรรทัดที่ 69 ครับ มี ' เกินมา
- ลองแก้ไข และ Validate อีกรอบครับ ถ้าไม่มี Error ตรง Output จะมีข้อความ "Jenkinsfile successfully validated." แจ้งครับ
สำหรับผู้อ่านที่ผ่านมา หากมี Extensions ดีๆ สามารถมาแนะนำกันได้นะครับ
Reference
- Jenkinsfile - Visual Studio Marketplace
- Jenkins Pipeline Linter Connector - Visual Studio Marketplace
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.