目录
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 概念
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
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简单原理图
本文只介绍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 环境搭建
3.1.1 基础环境搭建
找一台电脑(服务器最好)系统安装为window 7(x64,改成英文版最好),并且机子安装了.net framework4.0运行环境(里面要有MsBuild)
3.1.2 Git安装
安装Git,下载地址 https://git-scm.com/download/win
3.1.3 NuGet安装
安装NuGet.exe,下载地址:http://nuget.codeplex.com/downloads/get/669083
3.2 相关配置
3.2.1 Git环境变量配置
计算机右键—>属性里单击选择—>环境变量
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
3.2.2 PowerShell调用测试
PowerShell是调用方式(GitLab提供很多种方式),本文只针对PowerShell方式进行演示。PowerShell可以理解为就是cmd的升级版。
打开PowerShell,测试Git、MsBuild、NuGet命令行能否在PowerShell中使用(如果不想测试,请继续往下看)。
举例:
测试Git
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②
3.4 构建GitLab-Runner服务
3.4.1 介绍
基础环境已经搭建完成,如何将这台计算机真正变成一台Runner-CI服务器,我们需要详细介绍一下。
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)
输入命令为:
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
如下图填写信息红色部分
3.4.4 开启gitlab-runner服务
输入开启命令,并检查window服务中和GitLab->Runners中是否开启成功
gitlab-ci-multi-runner-windows-amd64.exe install gitlab-ci-multi-runner-windows-amd64.exe start
3.4.5 修改协议config.toml文件(重要)
注册成功后,在文件夹中找到config.toml,在[[runners]]后面添加shell = "powershell"节点
3.5 构建.gitlab-ci.yml脚本
【.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
3.6 完成配置
提交代码测试
成功:点击查看成功日志
失败:点击查看错误日志
编译中:点击查看编译中的日志
.gitlab-ci.yml脚本错误:,点击跳转到.gitlab-ci.yml验证页面
4. 常见问题解决
4.1 GitLab出现Pending卡住
请检查Runner-CI服务器的GitLab-Runner服务是否安装成功,Runners中的Url地址①是否正确。
4.2 GitLab CI乱码问题
GitLab返回信息乱码,一般是因为GitLab不能识别中文,一般乱码是PowerShell返回的中文,把PowerShell脚本独立运行看看是否报错。所以推荐window搞成英文版的,要是哪位大侠知道GitLab怎么识别中文麻烦分享下哈。
4.3 明明错误,但Build成功
错误截图如下,请检查Git环境变量是否配置,PowerShell脚本是否独立为一个文件
4.4 .gitlab-ci.yml脚本错误
点击Lint,进行脚本验证,参考资料http://docs.gitlab.com/ee/ci/yaml/README.html
注意
script:
- {空格} {你的命令}
感谢
劈荆斩棘:Gitlab 部署 CI 持续集成 感谢这篇文章让我少走了很多弯路