[Azure] — How to use Azure DevOps build .NET Core — Part 1

RootFy22
3 min readFeb 13, 2021

สวัสดีครับ วันนี้ผมจะมานำเสนอวิธีการสร้าง Pipeline โดยใช้บริการ Azure DevOps เพื่อ build .net core web api กันนะครับ

Azure DevOps คือบริการของ Microsoft ที่จะช่วยอำนวยความสะดวกในกระบวนการพัฒนาซอฟต์แวร์ให้เป็นระบบ เหมาะกับทำงานเป็นทีม หรือเดี่ยว ซึ่งในที่นี้ผมจะขอกล่าวถึงบริการที่เกี่ยวข้องกับบทความนี้ก่อนนะครับ คือ Azure Pipeline นั้นเอง

Azure Pipeline คือ บริการที่จะช่วยให้การส่งมอบซอฟต์แวร์ นั้นง่ายและสะดวก กล่าวคือ ถ้าหากคุณเป็นเดฟ คุณเพียงแค่ส่งมอบโค้ด (push) เข้าระบบจัดเก็บโค้ด (Git) เช่น Github, GitLab, Bitbucket หรือ Azure Repos จากนั้นเจ้าตัวนี้ จะทำการ build โค้ด and deploy โค้ดที่พร้อมใช้งานขึ้น server หรือ cloud service ต่างๆ ให้คุณเอง

ภาพแสดงการทำงานของ Azure DevOps

ในตัวอย่างนี้ผมใช้้ Azure Repos ไว้เก็บโค้ด และใช้ App Service ของ Azure สามารถสมัครบริการ Azure DevOps (ฟรี) จาก https://dev.azure.com

ขั้นตอนในการ build code

ขั้นตอนในการ build code ประกอบไปด้วย

  • dotnet publish (สำหรับ compile csproj ให้เป็น dll)
  • npm run test (ทดสอบสร้าง test results)
  • publish test results (นำไฟล์ test results ไปแสดงไว้บน tab tests)
  • archive (zip folder ที่คอมไพล์เสร็จแล้ว)
  • นำ zip file ไปเก็บไว้ดูบน storage ชั่วคราว
ขั้นแรกไปที่เมนู pipeline > create pipeline
เลือก classic editor
เลือก source ที่เก็บโค้ด
เลือกสร้าง pipeline แบบยังไม่ใส่อะไรเลย
ค้นหา .net core task
ตั้งค่า dotnet publish
เลือก npm task เพื่อรัน test
นำผลที่การทดสอบไปแสดงบน แท๊บใหม่
zip file ที่เก็บผลไฟล์ที่คอมไพล์ dotnet
เอา zip file ไปเก็บไว้บน artifact storage
ตั้งค่าให้ pipeline ทำงานอัตโนมัติ เมือมีการ push code มายัง master
แสดงผลลัพธ์การรัน pipeline
สามารถดูผลลัพธ์ของ Tests และดูว่า zip file เก็บที่ไหน
สามารถดาวโหลด zip file มาลองรันได้
ดูรายงานได้ว่าผลของการรัน tests นั้นผ่านหรือไม่ผ่าน เพราะอะไร

บทสรุปการสร้าง pipeline โดยใช้ Azure DevOps แบบทำ step by step โดยไม่ต้องลงมือเขียน yml ซึ่งการเขียน yml นั้นก็จะเหมือนกับ Github action หรือ Bitbucket pipeline เหมาะกับการเริ่มต้นทำ DevOps อย่างง่ายด้วยตัวเองครับ

ไปต่อกัน Part 2 ในการ release ขั้น App Service กันนะครับผม

หากมีข้อสงสัยสามารถแลกเปลี่ยน หรือสอบถามเพิ่มเติมได้ครับ
ขอบคุณที่อ่านครับผม
Happy Coding!

--

--