GitLab CI持續集成配置方案

目錄html


1. 持續集成介紹 git

1.1 概念 shell

1.2 持續集成的好處 windows

2. GitLab持續集成(CI) 服務器

2.1 簡介 gitlab

2.2 GitLab簡單原理圖 測試

2.3 GitLab持續集成所需環境 ui

2.4 須要瞭解知識 spa

3. 搭建GitLab持續集成環境(NET版) .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持續集成所需環境

開發環境:VS201五、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 持續集成  感謝這篇文章讓我少走了不少彎路

相關文章
相關標籤/搜索