在現代化的網站開發中,逐漸也趨向將交付的功能切小,並頻繁交付,使開發出來的功能可以小部分小部分快速確認,持續驗證系統開發的成果。但是這樣大量且頻繁的交付,如果是透過人工手動進行會相當費時,而且量一大,人工的方式就很容易會出錯,為了簡化這些過程,我們就需要使用到持續整合與持續部署。
持續整合(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裡,並建立新的組織
Tips:Azure DevOps可以選擇版型,透過右上角的使用者設定的圖示進行選擇
-------------分隔線-------------
建立完畢在組織內建立新的專案
建立完畢後從Pipelines中點選Create Pipeline建立我們的CI
選擇GitHub作為來源
並選擇剛才建立的Repository
這中間會出現GitHub授權畫面,只要按接受就可以了,也要記得選擇要觸發CI的分支,預設會是master。
接著會出現設定pipeline的類型,我們可以從下面選取ASP.NET Core的選項
接著就會在GitHub的Repository幫我們加入一個YAML檔,點選Run執行就可以進行第一次的CI了
接著就要來建立CD的部分了,選取Pipelines裡面的Release,並建立新的Release Pipelines
可以看到有許多選項,我們可以透過右上方的Filter來篩選我們要的內容
選取完畢之後便會出現以下畫面,左邊是部署的來源,右邊是CD部署的目標,我們要選取左邊的來源
選取後會看到多個來源,我們要選的是Build,從我們CI建置好的項目部署到伺服器中
設定完畢之後會發現無法執行或儲存,那是因為我們並沒有設定完整要部署伺服器的詳細資訊,所以我們需要選取上方的Task進行伺服器資訊的補足
接著就是填入個人Azure的相關資料,填入完畢之後就可以儲存並執行CD了
參考文章
Continuous integration and deployment