目錄html
1. 持續集成介紹 git
1.1 概念 shell
1.2 持續集成的好處 windows
2.1 簡介 gitlab
2.4 須要瞭解知識 spa
持續集成是一種軟件開發實踐,即團隊開發成員常常集成它們的工做,經過每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘早地發現集成錯誤。
(1)快速發現錯誤。每完成一點更新,就集成到主幹,能夠快速發現錯誤,定位錯誤也比較容易。
(2)防止分支大幅偏離主幹。若是不是常常集成,主幹又在不斷更新,會致使之後集成的難度變大,甚至難以集成。
在GitLab 8.0+提供了持續集成的功能,在GitLab中有個Runners的概念。
Runner一共有三種類型
1) 本地Runner
2) 普通的服務器上的Runner
3) 基於Docker的Runner
本文只介紹GitLab對NET進行持續集成
開發環境:VS201五、Git
GitLab服務器環境:GitLab 8.0+
Runner-CI服務器:window、Git、Msbuild、Nuget、PowerShell、GitLab-Runner
Git操做、GitLab、Msbuild&Nuget命令行、Powershell命令行
找一臺電腦(服務器最好)系統安裝爲window 7(x64,改爲英文版最好),而且機子安裝了.net framework4.0運行環境(裏面要有MsBuild)
安裝Git,下載地址 https://git-scm.com/download/win
安裝NuGet.exe,下載地址:http://nuget.codeplex.com/downloads/get/669083
計算機右鍵—>屬性裏單擊選擇—>環境變量
Git 目錄下的 bin(如 C:\Program Files (x86)\Git\bin)添加到 PATH 環境變量。
以下圖:選擇 PATH編輯,將 bin 的路徑(C:\Program Files (x86)\Git\bin)添加到變量值
詳細配置參考方法(二選一便可)
【手動配置環境變量】
http://jingyan.baidu.com/article/fec4bce271601ff2618d8be3.html
【Git安裝自動配置環境變量】
http://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html
PowerShell是調用方式(GitLab提供不少種方式),本文只針對PowerShell方式進行演示。PowerShell能夠理解爲就是cmd的升級版。
打開PowerShell,測試Git、MsBuild、NuGet命令行可否在PowerShell中使用(若是不想測試,請繼續往下看)。
舉例:
測試Git
首先,下載gitlab-ci-multi-runner-windows-amd64,並將其放到C:\CI
下載地址:
點擊一個項目->Settings->Runners, 獲得Url地址①和registration token②
基礎環境已經搭建完成,如何將這臺計算機真正變成一臺Runner-CI服務器,咱們須要詳細介紹一下。
首先,下載gitlab-ci-multi-runner-windows-amd64,並將其放到 D:\CI_Test
下載地址:
運行cmd命令(以管理員身份打開cmd)
輸入命令爲:
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
以下圖填寫信息紅色部分
輸入開啓命令,並檢查window服務中和GitLab->Runners中是否開啓成功
gitlab-ci-multi-runner-windows-amd64.exe install gitlab-ci-multi-runner-windows-amd64.exe start
註冊成功後,在文件夾中找到config.toml,在[[runners]]後面添加shell = "powershell"節點
【.gitlab-ci.yml內容爲】
下圖紅框中的命令,只要將路徑修改成"ConsoleApplication1.sln"的實際路徑就能直接從Powershell中運行。 注意: 若是報錯"ConsoleApplication1.sln"找不到能夠嘗試變爲"src/ConsoleApplication1.sln"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
提交代碼測試
請檢查Runner-CI服務器的GitLab-Runner服務是否安裝成功,Runners中的Url地址①是否正確。
GitLab返回信息亂碼,通常是由於GitLab不能識別中文,通常亂碼是PowerShell返回的中文,把PowerShell腳本獨立運行看看是否報錯。因此推薦window搞成英文版的,要是哪位大俠知道GitLab怎麼識別中文麻煩分享下哈。
錯誤截圖以下,請檢查Git環境變量是否配置,PowerShell腳本是否獨立爲一個文件
點擊Lint,進行腳本驗證,參考資料http://docs.gitlab.com/ee/ci/yaml/README.html
注意
script:
- {空格} {你的命令}
感謝