添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

首先,下载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 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
- 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"

3.6 完成配置

提交代码测试

成功: image042 点击查看成功日志

失败: image044 点击查看错误日志

编译中: image046 点击查看编译中的日志

.gitlab-ci.yml脚本错误: image048 ,点击跳转到.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:
- {空格} {你的命令}