阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Jenkins搭建CI服务器

134次阅读
没有评论

共计 1792 个字符,预计需要花费 5 分钟才能阅读完成。

Jenkins 是一个开源的跨平台的 CI 工具,它可以部署在 Windows、Linux 等平台上,并且 Jenkins 提供了非常丰富的插件来帮助完成编译、测试、部署等工作。
本文将介绍在 Windows 平台上使用 Jenkins 完成.Net Core 应用的持续集成环境搭建,其主要内容有:

  • Jenkins 下载与安装
  • 创建一个.Net Core 编译任务
  • 实现自动测试
  • 实现自动部署
  • 小结

Jenkins 下载与安装

本例使用 Jenkins2.136 版本进行演示,Jenkins 下载地址:https://jenkins.io/download/
1. 下载 Jenkins 的 Windows 安装器:

使用 Jenkins 搭建 CI 服务器

2. 通过安装向导完成 Jenkins 安装:

使用 Jenkins 搭建 CI 服务器

Jenkins 的默认端口是 8080,当安装完成后可以通过该端口访问 Jenkins:

使用 Jenkins 搭建 CI 服务器

3. 根据 Jenkins 的配置向导完成相应配置,并进入 Jenkins:
选择常用插件,这些插件包含了 Git、SVN 等常用插件:

使用 Jenkins 搭建 CI 服务器

创建用户:

使用 Jenkins 搭建 CI 服务器

进入 Jenkins:

使用 Jenkins 搭建 CI 服务器

创建一个.Net Core 编译任务

1. 创建一个新任务:

使用 Jenkins 搭建 CI 服务器

填写任务名称选择自由风格项目:

使用 Jenkins 搭建 CI 服务器

 

2. 修改任务配置:

使用 Jenkins 搭建 CI 服务器

代码库:

使用 Jenkins 搭建 CI 服务器

3. 添加构建步骤,此处执行 dotnet 的编译命令:

使用 Jenkins 搭建 CI 服务器

4. 执行任务,结果输出如下:

使用 Jenkins 搭建 CI 服务器

实现自动测试

1. 添加测试运行步骤:

使用 Jenkins 搭建 CI 服务器

dotnet 测试命令参考:https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test?tabs=netcore21
运行结果:

使用 Jenkins 搭建 CI 服务器

2. 收集代码覆盖率:
之前介绍了使用 OpenCover 来分析.net core 的单元测试代码覆盖率,然后再通过 ReportGenerator 来生成 Html 格式的报告,所以首先需要添加代码覆盖率分析以及报告生成的构建步骤:

使用 Jenkins 搭建 CI 服务器

OpenCover.Console.exe -target:”dotnet.exe” -targetargs:”test XUnitTestProject/XUnitTestProject.csproj” -output:coverage.xml -filter:”+[*]* -[*Moq]* -[xunit*]*” -oldstyle
ReportGenerator.exe “-reports:coverage.xml” “-targetdir:report”
注:在持续集成工具中使用 OpenCover 可能会无法生成代码覆盖信息,所以需要对 OpenCover.Profiler.dll 文件进行注册,注册代码如下:

使用 Jenkins 搭建 CI 服务器

OpenCover.Profiler.dll 文件位于 OpenCover 的安装目录下,更多详情查考 OpenCover 安装目录下的 Usage.rtf 文档。

如果要将生成的 Html 在 Jenkins 上显示,那么必须添加一个 HTML Publisher 的插件:

使用 Jenkins 搭建 CI 服务器

然后在构建后操作中添加 HTML 发布操作:

使用 Jenkins 搭建 CI 服务器

需要填写 HTML 的目录和报告起始页面。
完成后保存配置,并执行构建:

使用 Jenkins 搭建 CI 服务器

使用 Jenkins 搭建 CI 服务器

使用 Jenkins 搭建 CI 服务器

然后在工程面板中即可查看代码覆盖报告:

使用 Jenkins 搭建 CI 服务器

报告:

使用 Jenkins 搭建 CI 服务器

实现自动部署

当完成编译工作后,需要把编译的结果发布出来,对于一个 Windows 的控制台应用程序来说,实际上把编辑的执行程序以及相关程序集发布出来即可,而这个程序文件实际上是在项目的 bin 目录下。
在 Jenkins 中可以通过 Artifact Deployer Plug-in 这个插件来完成文件发布功能:

使用 Jenkins 搭建 CI 服务器

插件安装完成后,在项目的构建后操作中添加部署操作,将生成的文件复制到 D:\test 目录下:

使用 Jenkins 搭建 CI 服务器

执行构建后将自动把构建结果发布至 D:\test 目录下。

使用 Jenkins 搭建 CI 服务器

小结

本文简单的介绍了如何使用 Jenkins 及相关插件完成.Net Core 程序的自动编译、测试和发布功能。无论是前面文章提到的使用各种托管工具还是自己搭建 Jenkins 其核心步骤都是通过相应工具以执行命令的方式完成的 (编译命令、测试命令、代码覆盖率命令、报表生成命令等)。

虽然都是通过相同的工具以及相同的命令,但是不同的 CI 工具使用上还是存在一些区别,并且还存在大量的手动配置,有没有一种方法来简化并且重用 CI/CD 流程呢?敬请期待后续内容 (*^_^*)

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1792字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中