Category Continuous Integration

Continuous Integration

[Jenkins] ลองเพิ่มเครื่อง Agent ที่เป็น Windows

หลังจาก Blog ตอนก่อนหน้าทุกคนคงเข้าใจ Concept ของ Jenkins Controller and Agents Architecture และประโยชน์ของมัน คราวนี้มาลอง Setup กันจริงๆครับ สรุป Step ขั้นตอนคร่าวๆ Jenkins Agent กำหนดให้เครื่อง Agent (Windows) รองรับการ SSH แบบแลก Key และเตรียม เตรียม Path temp ที่เครื่อง Agent (Windows) เอาไว้ ทำหน้าที่เป็น Workspace เวลาที่เครื่อง Controller มาสั่ง Node Agent เข้ามาทำงาน…

[Jenkins] Controller and Agents Architecture

Jenkins Controller and Agents Architecture ถ้าใครไปอ่าน doc เก่าๆ Controller (Master) และ Agent (Slave)นะครับ แนวคิดของ Controller and Agents Architecture จะการ CI/CD ที่มีการ Scale-Out เพิ่มจำนวน Node ในที่นี้ Node คือ ตัว Jenkins เพื่อมารองรับกระจาย(Distributed) งานด้าน CI/CD ที่เพิ่มมากขึ้น จากความต้องการ Functional / Time to Market /…

ย้าย SVN ไป GIT มันต้องระวังอะไรบ้างนะ

จากช่วงปลายที่ 2020 ที่ผ่านมาทุกคนคงจะกลับบ้าน หรืออยู่บ้านปลอดเชื้อกันนะครับ ส่วนผมแก้ Code ข้ามปีครับ สำหรับการย้าย Code จาก SVN ไป GIT ใน Project .NET ครับ โดยมีข้อที่ต้องสังเกตุ ดังนี้ Requirement ของการย้าย Code ตอนนี้ยังเป็น Parallel อยู่ครับ Build ของปี 2021 เป็นต้นไป อันนี้ใช้ Code จาก GIT เลยครับ แต่ถ้าเป็นงาน MA ที่ลูกค้ายังใช้งานเวอร์ชันเก่าๆ อย่างปี 2018 อันนี้ยังคงใช้งาน…

[Jenkins] GIT Parameter fatal: Couldn’t find remote refs/heads/${BRANCH_ON_GIT}

jenkins

หลังจากย้ายจาก SVN ไป GIT มันมีการแก้ Script ของ Automate Build ด้วยครับ มาดูพฤติกรรมของ Job Build กันก่อนไหมครับ Job A : GIT_CONTROLLER_PIPELINE – โดยมีเรียก 1 Job ซ้ำกัน 3 ครั้ง ดังนี้ Job B: SOLUTION_GIT_PIPELINE – ส่ง Param สำหรับ SITE A Job B: SOLUTION_GIT_PIPELINE – ส่ง…

[.NET] แก้ปัญหา Build แล้ว Error Your project file doesn’t list ‘win’ as a “RuntimeIdentifier”

blur close up code computer

Blog ตอนนี้ยังเป็น Blog ที่สรุปหลังปรับ Framework ขององค์กรครับ จาก Blog ก่อนหน้าที่ Error “The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located” คราวนี้มาเจอ Error ใหม่ ที่มันกวนตีนกว่าเดิมครับ เพราะ มันเป็นบ้าง ไม่เป็นบ้าง และถ้า Build ผ่านตัว Visual Studio ไม่เจอนะ…

[.NET] แก้ปัญหา Build แล้ว Error The build is configured to run SonarQube analysis

blur close up code computer

หลังจากปรับ Framework ของบริษัทให้เป็น .NET Standard เรียบร้อยแล้ว เมื่อทดสอบ Build ผ่านตัว Jenkins เกิด Error ดังนี้ The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located ภาพรวมของ SonarQube Analysis นะครับ ต้องเข้าใจก่อนนะครับ ว่าการวิเคราะห์ Code ของ SonarQube จริงๆ…

Jenkins มาจัดการกับ Build Log เพื่อป้องกันไม่ให้ Disk เต็มครับ

jenkins

หลังจากพบว่า ฺBuild Server พื้นที่ Disk เต็มครับ โดยหลังจากลองใช้โปรแกรม TreeSize Free เข้ามาช่วงค้นหาว่า Folder ไหนที่มีขนาดใหญ่เกินไปจากปกติ จนพบสาเหตุว่า หนึ่งในสาเหตุที่พื้นที่ Disk เต็มนั้น เกิดจาก Build Log ที่ไม่มีการทำกระบวนการ House Keeping (เอาง่ายๆ คือ การลบข้อมูลที่ไม่จำเป็น เพื่อให้มีพื้นที่สำหรับใช้งานระบบเพียงพอครับ) มาดูกันใน Jenkins ดีกว่า ถ้าจะ Clear Log ของการ Build ทำอย่างไรครับ – กรณีที่สร้าง Task Build แบบ…

[PowerShell] แก้ไขไฟล์ App.config ใน Jenkins Pipeline

powershell

หลังจากทำมี Tools ที่ กำหนดค่าที่เดียว แต่สามารถใช้งานไปได้ทุก Application แล้ว (Universal Configuration) แต่ทำไมคนอื่นถึงไม่ค่อยใช้งานกัน เราก็ถึงบ้างอ้อทันที อ๋อขี้เกียจไปแก้ app.config หรือ web.config นั้นเอง ด้วยความที่ระบบมันมี Base 3 สำหรับลูกค้า 3 กลุ่ม แต่ใช้ Code ชุดเดียวกันนะครับ มันจึงต้องมีการเตรียมค่าตั้งต้นกันก่อนนั้นเองครับ อาทิ เช่น Base AMC / INS ตัว Application อ่านค่าจาก HKEY_LOCALMACHINE Base TSY ตัว Application…

[CI] Jenkin Pipeline ให้ SVN Tag Build ให้

jenkins

สำหรับคนที่ยังใช้ Pipeline และกับการ Build .NET ทำให้ต้องมาวาง CI Server บน Windows พอบิ้วสำเร็จแล้ว เราอยากให้ตัว Pipeline จัดการ Tag Build ให้เลย ผมมี Code Snippet โดยลองดูตัวอย่าง Code Grovvy ได้เลยครับ จาก Code ด้านบน Code ชุดนี้ใช่้ลูกเล่น 2 แบบ คำสั่ง bat เพื่อให้มันไป execute bat command svn copy เพื่อทำคำสั่ง…

[CI] ทำ Jenkins BOT ให้ Rocket.Chat กัลเถอะ

หลังจากบริษัทได้เปลี่ยนตัว chat ที่มีอายุ 20 ปี ซึ่งมีนามว่า iChat(ไม่ใช่ของ Apple นะ 555) มาเป็น Rocket.Chat คราวนี้ได้เวลาลองเอาคุณลุง Jenkins มาเชื่อมครับ สิ่งที่ต้องเตรียม WebHook – URL ที่สร้างมาจาก Rocket.Chat Channel – ใน Rocket.Chat ICON – เอาไว้เป็น Avatar ของ Chat BOT ครับ ของผมก็เอาอันนี้เลย (น่ารักดี) ลุยกันเลยยย ไปที่ Jenkins เข้ามาจัดกับพวก Plugins ผ่านทางเมนู Manage…