這篇目的只是想粗略介紹一下建立一個很簡單的CI,可以算是再講上圖中的Build和Test階段,然後用最少的時間和資源去快速體會一下。(因為最近有點忙 T_T)
我們會需要一個有.gitlab-ci.yml檔的專案和一個GitLab帳戶。
之後會開始講我把專案從Jenkins搬到Gitlab,從不懂CI/CD到學會CI/CD,和一堆相關的心路歷程。
brew install gitlab-runner
gitlab-runner register
會要填一些資料,多半在GitLab專案上的設定頁面就找得到你要的資訊
這邊我指出我要用docker容器作為我的Runner,
根據我經驗,假若今天選了shell,那麼script最好是直接寫shell可以跑的。
同理選了Docker代表這Runner會是基於Docker運作的相關指令都先試試看Docker可以少碰一些壁。
有些必要資料這邊找得到
我的Pipeline會有兩個階段個別是build
, test
,
跑build這階段前,會先執行dotnet restore
,接著執行dotnet build
。而且只有具備dotnet-core-3.1
這個tag的runner可以跑這段指令。
同理跑Test不解釋。
前面有提到我用的是Docker的Runner因此我如果想在本機端測試一下runner是否正常運行,可以在專案底下gitlab-runner exec docker build
exec
是gitlab-runner後來支援可以在本機端測試的指令,後面接上要下的指令,以我來說我用的是docker,我的Job目前則有Build和Test,所以我就接上docker build
這可以讓我能在本地端測試Build。
另一方面gitlab上在我們稍早註冊完成後,也會出現新的Runner,但預設是不會On起來的,這我們要手動去On起來,不然到時專案會認為沒有可以用的Runner。ON起來後。
讓你的Runner服務啟動,往後有推版上去,yml檔若有指名到那個藍色Tag就會跑你電腦的Runner(電腦要開著)。
Install GitLab Runner on Windows | GitLab
Normal
cd ~
gitlab-runner install
gitlab-runner start
Brew :
brew services start gitlab-runner
這樣就可以讓Gitlab上Pipeline借Local Runner之力做CI啦
此外gitlab-runner verify
可以協助檢查本機端上的Runner是否運作正常。