GitLab CI持續集成配置方案


目錄


1. 持續集成介紹

1.1 概念

1.2 持續集成的好處

2. GitLab持續集成(CI)

2.1 簡介

2.2 GitLab簡單原理圖

2.3 GitLab持續集成所需環境

2.4 需要了解知識

3. 搭建GitLab持續集成環境(NET版)

3.1 環境搭建

3.1.1 基礎環境搭建

3.1.2 Git安裝

3.1.3 NuGet安裝

3.2 相關配置

3.2.1 Git環境變量配置

3.2.2 PowerShell調用測試

3.2.3 GitLab-Runner下載

3.3 GitLab查看項目的Runners

3.4 構建GitLab-Runner服務

3.4.1 介紹

3.4.2 下載軟件(沒下載的請下載)

3.4.3 注冊信息

3.4.4 開啟gitlab-runner服務

3.4.5 修改協議config.toml文件(重要)

3.5 構建.gitlab-ci.yml腳本

3.6 完成配置

4. 常見問題解決

4.1 GitLab出現Pending卡住

4.2 GitLab CI亂碼問題

4.3 明明錯誤,但Build成功

4.4 .gitlab-ci.yml腳本錯誤


1. 持續集成介紹


1.1 概念

持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通過每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡早地發現集成錯誤。

image

1.2 持續集成的好處

1)快速發現錯誤。每完成一點更新,就集成到主干,可以快速發現錯誤,定位錯誤也比較容易。

2)防止分支大幅偏離主干。如果不是經常集成,主干又在不斷更新,會導致以后集成的難度變大,甚至難以集成。

2. GitLab持續集成(CI)


2.1 簡介

在GitLab 8.0+提供了持續集成的功能,在GitLab中有個Runners的概念。

Runner一共有三種類型

1) 本地Runner

2) 普通的服務器上的Runner

3) 基於Docker的Runner

2.2 GitLab簡單原理圖

image 

本文只介紹GitLab對NET進行持續集成

2.3 GitLab持續集成所需環境

開發環境:VS2015、Git

GitLab服務器環境:GitLab 8.0+

Runner-CI服務器:window、Git、Msbuild、Nuget、PowerShell、GitLab-Runner

2.4 需要了解知識

Git操作、GitLab、Msbuild&Nuget命令行、Powershell命令行

3. 搭建GitLab持續集成環境(NET版)


3.1 環境搭建

image

3.1.1 基礎環境搭建

找一台電腦(服務器最好)系統安裝為window 7(x64,改成英文版最好),並且機子安裝了.net framework4.0運行環境(里面要有MsBuild)

3.1.2 Git安裝

安裝Git,下載地址 https://git-scm.com/download/win

image005

3.1.3 NuGet安裝

安裝NuGet.exe,下載地址:http://nuget.codeplex.com/downloads/get/669083

3.2 相關配置

3.2.1 Git環境變量配置

計算機右鍵—>屬性里單擊選擇—>環境變量

image010

Git 目錄下的 bin(如 C:\Program Files (x86)\Git\bin)添加到 PATH 環境變量。

如下圖:選擇 PATH編輯,將 bin 的路徑(C:\Program Files (x86)\Git\bin)添加到變量值

image012

詳細配置參考方法(二選一即可)

【手動配置環境變量】

http://jingyan.baidu.com/article/fec4bce271601ff2618d8be3.html

【Git安裝自動配置環境變量】

http://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html

3.2.2 PowerShell調用測試

PowerShell是調用方式(GitLab提供很多種方式),本文只針對PowerShell方式進行演示。PowerShell可以理解為就是cmd的升級版。

打開PowerShell,測試Git、MsBuild、NuGet命令行能否在PowerShell中使用(如果不想測試,請繼續往下看)。

image014

舉例:

測試Git

image017

3.2.3 GitLab-Runner下載

首先,下載gitlab-ci-multi-runner-windows-amd64,並將其放到C:\CI

下載地址:

https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-amd64.exe

3.3 GitLab查看項目的Runners

點擊一個項目->Settings->Runners, 得到Url地址①registration token

image018

image020

image022

3.4 構建GitLab-Runner服務

3.4.1 介紹

基礎環境已經搭建完成,如何將這台計算機真正變成一台Runner-CI服務器,我們需要詳細介紹一下。

image

3.4.2 下載軟件(沒下載的請下載)

首先,下載gitlab-ci-multi-runner-windows-amd64,並將其放到 D:\CI_Test

下載地址:

https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-amd64.exe

3.4.3 注冊信息

運行cmd命令(以管理員身份打開cmd)

image026

輸入命令為:

cd \

cd ci

gitlab-ci-multi-runner-windows-amd64.exe register

根據提示,填寫

1) GitLab->Runners的Url地址①

2) GitLab->Runners的registration token②

3) runner名稱,這個隨便寫

4) 分支名,master

5) 協議方式,shell

如下圖填寫信息紅色部分

image028

3.4.4 開啟gitlab-runner服務

輸入開啟命令,並檢查window服務中和GitLab->Runners中是否開啟成功

gitlab-ci-multi-runner-windows-amd64.exe install

gitlab-ci-multi-runner-windows-amd64.exe start

 image030

 image032

image034

3.4.5 修改協議config.toml文件(重要)

注冊成功后,在文件夾中找到config.toml,在[[runners]]后面添加shell = "powershell"節點

image036

 image038

3.5 構建.gitlab-ci.yml腳本

【.gitlab-ci.yml內容為】

stages:

- build

job:

stage: build

script:

- echo "Restoring NuGet Packages..." 

- C:\test\nuget.exe restore "ConsoleApplication1.sln" 

- echo "Solution Build..."

- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /p:Configuration=Debug /p:Platform="Any CPU" /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "ConsoleApplication1.sln"

tags: 

except:

- tags
下圖紅框中的命令,只要將路徑修改為"ConsoleApplication1.sln"的實際路徑就能直接從Powershell中運行。 注意 如果報錯"ConsoleApplication1.sln"找不到可以嘗試變為"src/ConsoleApplication1.sln"

image040

3.6 完成配置

提交代碼測試

成功:image042點擊查看成功日志

失敗:image044點擊查看錯誤日志

編譯中:image046點擊查看編譯中的日志

.gitlab-ci.yml腳本錯誤:image048,點擊跳轉到.gitlab-ci.yml驗證頁面

image050

4. 常見問題解決


4.1 GitLab出現Pending卡住

請檢查Runner-CI服務器的GitLab-Runner服務是否安裝成功,Runners中的Url地址①是否正確。

image052

4.2 GitLab CI亂碼問題

GitLab返回信息亂碼,一般是因為GitLab不能識別中文,一般亂碼是PowerShell返回的中文,把PowerShell腳本獨立運行看看是否報錯。所以推薦window搞成英文版的,要是哪位大俠知道GitLab怎么識別中文麻煩分享下哈。

4.3 明明錯誤,但Build成功

錯誤截圖如下,請檢查Git環境變量是否配置,PowerShell腳本是否獨立為一個文件

image

4.4 .gitlab-ci.yml腳本錯誤

點擊Lint,進行腳本驗證,參考資料http://docs.gitlab.com/ee/ci/yaml/README.html

注意

script:

- {空格} {你的命令}

image056

 image058

 image060

感謝


劈荊斬棘:Gitlab 部署 CI 持續集成  感謝這篇文章讓我少走了很多彎路

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM