為.NET Framework 專案加上CI(Continuous Integration)
因為工作需要,維護了一陣子的.Net Framework專案,順手先幫他加上CI
1.準備一台機器,讓他成為Runner,用來負責CI要做的事情
2.先為他準備好環境
- Git https://git-scm.com/downloads
- MSBuild https://visualstudio.microsoft.com/downloads/ (在下面的VS2019工具可以找到 Build Tools for Visual Studio 2019,可以不用安裝整個VS)
- Nuget https://www.nuget.org/downloads
- .NET Framework https://www.microsoft.com/net/download
3.接著安裝GitLab Runner,按照官方文件的步驟 https://docs.gitlab.com/runner/install/windows.html
- 下載 gitlab-runner.exe
- 通過cmd安裝服務 gitlab-runner.exe install
- 啟動服務 gitlab-runner.exe start
4.註冊Runner到GitLab,官方文件 https://docs.gitlab.com/runner/register/#windows
- 通過cmd註冊 gitlab-runner.exe register
- 接著依序填入URL、Token、description、tags,URL及Token可以在這邊找到
- 最後會詢問執行模式,這邊先選擇Shell
5.接著回到GitLab上的CI/CD,會發現增加了一個Runner
6.點選Runner右邊的編輯按鈕,把這個選項打勾(為了後續方便測試,實際看個人情況調整)
7.目前為止Runner設定告一段落,接著要為專案新增CI/CD的設定檔 .gitlab-ci.yml,可以從GitLab這邊點選建立
8.接著填上內容,這邊先簡單的只做Build的動作
- 先透過nuget.exe把相依的組件都抓下來
- 呼叫MSBuild來Build專案
variables:
NUGET_PATH: 'C:\Tools\nuget.exe'
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild.exe'
stages:
- build
build_job:
before_script:
- chcp 65001
stage: build
script:
- '& "$env:NUGET_PATH" restore'
- '& "$env:MSBUILD_PATH" /p:Configuration=Release'
9.yml簽入後接著可以回到CI/CD Pipelines,這邊可以看到剛才設定的CI運行狀況
10.後續可以再依照專案情況,調整 yml檔,增加其他的流程、環境、步驟
這篇重寫了三次才總算可以發佈了,中間遇到Windows更新、Mac當機,結果文章的草稿也只保存了標題跟前兩行的內容...
後續再陸續加上.net Core的CI/CD設定(比.NET Frameword簡單多了)