Category Continuous Integration

Continuous Integration

Jenkins Error com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.security.ProjectMatrixAuthorizationStrategy

พอเข้าช่วงที่ต้องมา Update Jenkins ให้รอบครึ่งปี แล้วหลังจากลองซ้อมที่ DR เจอ Error CannotResolveClassException โดยมี Stack Trace เต็มๆตามนี้ครับ สำหรับ Environment ที่ผมได้ลองมี Platform Software Current Version Update Version Windows Jenkins (msi) 2.504.2 2.528.3 Linux Jenkins (container) 2.504.2 2.528.3 อาการเดียวกันเลยครับ สุดท้ายใช้ท่าไม้ตาม Rollback VM เอาเข้า ง่ายดี จากนั้นเลยค่อยอ่าน Change…

เพิ่ม GitLab Runner โดยใช้ Authentication Token

พอดีเข้าช่วยขยับ GitLab 18 เลยมาดูตัว Runner สักหน่อย ลอง Add ด้วยวิธีเดิมมันจะเตือนเราเบาๆ แล้วว่า จากคำสั่งเดิมที่ใช้กัน จุดที่สังเกตุเป็น -r registration token มันจะมีการเปลี่ยนแปลงไป จากเดิมใช้ Registration Tokens จะมาเป็น Authentication Tokens แทนครับ ซึ่งมีความแตกต่าง ดังนี้ โดยแผนของ GitLab ใน Ver 15 เปิดตัว Authentication Tokens / Ver 17 ไม่ให้สร้าง Registration Tokens และจะเอาออกถาวรใน…

Step ดึง npm lib โดยใช้ curl/wget และ manual upload เข้า nexus กรณีที่ nexus proxy ใช้งานไม่ได้

สำหรับ Blog เขียนขึ้นมา เพราะว่าอยู่เจอปัญหาว่าตัว npm ตัว nexus proxy ไม่สามารถดึงมาให้ได้ พยายาม npm install หลายๆรอบ เพื่อให้ nexus ดึงมาให้ แต่ตบตีไปเกือบครึ่งวันแล้วยังไม่ได้ และเดี๋ยวต้องเอาไปส่ง UAT แล้ว เลยได้ท่านี้ขึ้นมาครับ Download npm lib via curl/wget ปกติสำหรับท่านี้มี 3 แบบที่ดึง package ลงมาแบบ Offline ตัว Lib ที่มีปัญหา [email protected] Note: สำหรับวิธีการนี้ผมไม่ได้ใช้ เนื่องจากเครื่อง dev…

ลองใช้ Locale Emulator สำหรับ App เก่าๆที่ต้องการ Locale เป็นพิเศษ

จาก Blog ตอนที่แล้วที่จะว่าตัว Sun One มัน Required Specific Locale ทำให้ dotnet build เจอ Error MSB3554 เลยต้องหาทางแก้กัน เพราะ ผบห ไม่ให้งบ Resource เพิ่มและ ให้เอามาฝาก Agent ที่ผมดูแลแบบงงๆ Solution ที่เป็นไปได้ หลังจากถกกันสรุปจะไม่เพิ่ม User แนวทางเลยมาเป็นการใช้ Locale Emulator แทนครับ Locale Emulator / Locale Remulator คือ อะไร เป็น…

Jenkins-Git username / password credentials binding 

สำหรับ Blog ถ้าใช้ Jenkins แล้วอยาก Binding Git โดยใช้ username / password อยู่ใน pipeline มีวิธีการตามนี้ครับ ถ้าใช้ตัวอย่าง PowerShell / Shell ผมมี recap ตัวอย่างให้ลองนำไปปรับใช้กันครับ สุดท้ายสำหรับวิธีการนี้ แนะนำให้ใช้กับ Git ที่ยังต่อ username / password อยู่นะครับ ถ้าเป็นตัวใหม่ๆใช้ AccessToken / PAT หรือ การแลก Key จะ Secure กว่าคร้บ Reference

เรื่องวุ่นๆของเงื่อนไขใน Jenkins Pipeline

พอดีได้วนกลับมาแก้ไข JenkinsFile เลยคิดว่าไหนๆก็มาแก้อีกรอบแล้ว มาเขียน Blog สรุปเลยดีกว่าใน Jenkins Pipeline ในตัว JenkinsFile เราสามารถเขียนเงื่อนไข หรือ Condition ได้กี่แบบ สำหรับผมจะแบ่งได้ 2 กลุ่ม ดังนี้ เงื่อนไข เพื่อให้ Stage นั้นทำงาน (ถูก Execute) สำหรับในกลุ่มเงื่อนไขที่ที่บอกให้ Stage ทำงานขึ้นมาจะใช้คำสั่ง when โดยมีรูปแบบการใช้งานได้ ดังนี้ จริงๆมันมีอีกหลายตัวเลยครับที่ใช้ได้ใน When ลองดูได้จาก Link นี้เพิ่มเติมได้ครับ แต่ส่วนตัวที่ใช้หลักๆ expression / allOf /…