[GitLab] 為.NET Framework 專案加上CI(Continuous Integration)

為.NET Framework 專案加上CI(Continuous Integration)

因為工作需要,維護了一陣子的.Net Framework專案,順手先幫他加上CI


1.準備一台機器,讓他成為Runner,用來負責CI要做的事情
2.先為他準備好環境

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簡單多了)