iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 30
1
Modern Web

我與 ASP.NET Core 的 30天系列 第 30

[Day30] 持續整合與部署 - 我與 ASP.NET Core 3 的 30天

在現代化的網站開發中,逐漸也趨向將交付的功能切小,並頻繁交付,使開發出來的功能可以小部分小部分快速確認,持續驗證系統開發的成果。但是這樣大量且頻繁的交付,如果是透過人工手動進行會相當費時,而且量一大,人工的方式就很容易會出錯,為了簡化這些過程,我們就需要使用到持續整合與持續部署。

持續整合(Continuous Integration 簡稱CI)主要是用來整合發布前的程式碼,確保程式碼是可以正常運作的,其中包含:建置(build)、測試(test 包含單元測試、整合測試...等等自動化測試)、程式碼分析(source code analysis)等等確保程式品質的動作。

持續部署(Continuous Deployment 簡稱CD)主要是用來將CI完畢的內容部署上指定的機器中。

在ASP.NET Core 中也有許多可以協助完成CI/CD的工具,今天主要以Github搭配Azure DevOps來完成我們的CI/CD

首先先建立GitHub的Repository後clone至本地,並建立ASP.NET Core的應用程式之後做第一次commit(過程不詳細說明,主要講述內容會著重在CI/CD)

接著可以從Azure DevOps入口網站進入Azure DevOps裡,並建立新的組織
https://ithelp.ithome.com.tw/upload/images/20201014/20129389BQoP3OisXk.png

Tips:Azure DevOps可以選擇版型,透過右上角的使用者設定的圖示進行選擇
https://ithelp.ithome.com.tw/upload/images/20201014/20129389d7pTQ4kWbd.png
-------------分隔線-------------

建立完畢在組織內建立新的專案
https://ithelp.ithome.com.tw/upload/images/20201014/20129389P43Qlfe5Lw.png

建立完畢後從Pipelines中點選Create Pipeline建立我們的CI
https://ithelp.ithome.com.tw/upload/images/20201014/201293892aDrqhMIf0.png
https://ithelp.ithome.com.tw/upload/images/20201014/20129389xkcZMQWTaD.png

選擇GitHub作為來源
https://ithelp.ithome.com.tw/upload/images/20201014/20129389q46hN3d1t8.png

並選擇剛才建立的Repository
https://ithelp.ithome.com.tw/upload/images/20201014/20129389yKy3CJSmbw.png

這中間會出現GitHub授權畫面,只要按接受就可以了,也要記得選擇要觸發CI的分支,預設會是master。

接著會出現設定pipeline的類型,我們可以從下面選取ASP.NET Core的選項
https://ithelp.ithome.com.tw/upload/images/20201015/20129389VKMzA6cxmH.png

接著就會在GitHub的Repository幫我們加入一個YAML檔,點選Run執行就可以進行第一次的CI了
https://ithelp.ithome.com.tw/upload/images/20201014/201293890n8ON1AvDA.png

接著就要來建立CD的部分了,選取Pipelines裡面的Release,並建立新的Release Pipelines
https://ithelp.ithome.com.tw/upload/images/20201015/20129389rg5v6P3iV2.png
https://ithelp.ithome.com.tw/upload/images/20201015/20129389FFC0KIKAft.png

可以看到有許多選項,我們可以透過右上方的Filter來篩選我們要的內容
https://ithelp.ithome.com.tw/upload/images/20201015/20129389svm5EGoIlZ.png
選取完畢之後便會出現以下畫面,左邊是部署的來源,右邊是CD部署的目標,我們要選取左邊的來源
https://ithelp.ithome.com.tw/upload/images/20201015/20129389aFxftofynM.png

選取後會看到多個來源,我們要選的是Build,從我們CI建置好的項目部署到伺服器中
https://ithelp.ithome.com.tw/upload/images/20201015/20129389uSPHwvUmZT.png

設定完畢之後會發現無法執行或儲存,那是因為我們並沒有設定完整要部署伺服器的詳細資訊,所以我們需要選取上方的Task進行伺服器資訊的補足
https://ithelp.ithome.com.tw/upload/images/20201015/20129389r49Go6YEUD.png

接著就是填入個人Azure的相關資料,填入完畢之後就可以儲存並執行CD了
https://ithelp.ithome.com.tw/upload/images/20201015/20129389cGHRNhvNNK.png

參考文章
Continuous integration and deployment


上一篇
[Day29] 部署網站 - 我與 ASP.NET Core 3 的 30天
下一篇
[Day31] 完結篇 感動最終回 - 我與 ASP.NET Core 3 的 30天
系列文
我與 ASP.NET Core 的 30天31

尚未有邦友留言

立即登入留言