Jenkins简单使用与介绍
目录
关于Jenkins
- Jenkins是一个持续集成的工具,用于自动化各种任务,包括构建、测试和部署软件。
持续集成是什么
- 大师 Martin Fowler 对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自
为什么要持续集成?
- 场景一、某项目最后做模块集成的时候,发现很多接口都不通,甚至有的模块连安装包都没有。
- 场景二、没有可用的软件包,需要人手动去编译打包最新的代码。
- 场景三、搭建测试环境的时候需要手动去解压包然后一系列拷贝修改配置等等。
- 场景四、团队成员或者teamleader想了解当前项目的状态,该如何去展示这些信息。
持续集成就是用来解决以上问题,它的价值主要在于减少重复的步骤,降低项目的风险,任何时间任何地点生成可用的软件,增强项目的可见性等。
持续集成怎么做?
- 持续集成,最简单的形式是包括一个监控版本控制系统(SVN、Git等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用。
下面是持续集成中一些良好的实践- 维护一个单一的代码库
- 使构建自动化
- 使构建自测试
- 每人每天都向主线提交代码
- 每次提交都应在集成机上进行构建
搭建GitLab+Jenkins+MSBuild持续集成环境
- GitLab是一个代码仓库,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。
什么是MSbuild?
- MSBuild 是 Microsoft 和 Visual Studio的生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台。MSBuild平台的主要涉及到三部分:执行引擎、构造工程、任务。其中最核心的就是执行引擎,它包括定义构造工程的规范,解释构造工程,执行“构造动作”;构造工程是用来描述构造任务的,大多数情况下我们使用MSBuild就是遵循规范,编写一个构造工程;MSBuild引擎执行的每一个“构造动作”就是通过任务实现的,任务就是MSBuild的扩展机制,通过编写新的任务就能够不断扩充MSBuild的执行能力。所以这三部分分别代表了引擎、脚本和扩展能力。
- PS. Visual Studio最终还是需要通过MSbuild去编译项目发布,只是IDE背后去完成了这些工作而已,而通过Jenkins我们需要去使用命令去调用MSbuild编译发布。
Jenkins插件
- Jenkins:基于插件化的架构,方便功能的扩展,目前有几百个现成插件可以使用,这些插件涵盖从版本控制、构建工具、代码质量、构建通知、集成外部系统、UI定制、游戏等等各个方面。
- 在Jenkins>Plugin Manager中可对插件进行管理
- 需要的插件:Git Plugin、SSH Plugin、URL Trigger Plugin、Gerrit Trigger Plugin、 Gitlab Hook、Gitlab Merge Request Builder、GitLab Plugin、MSBuild Plugin
创建一个自动编译VC工程的任务步骤
- 新建一个自由风格的软件项目(默认访问地址192.168.100.20:8080)
- 配置源码管理
- 添加凭据:
Kind 选择 Username with password,填写GitLab的用户名和密码。
添加完成后,在credentials中选择刚刚创建的凭据
- 配置构建触发器:选择“构建触发器”,勾选“P0ll SCM”,这个选项会每隔一段时间检查一下GitLab仓库中代码是否有更新,有的话就执行构建操作。
- 其他触发方式:
Build after other projects are built 当另一个构建任务完成之后触发
Build periodically 周期性的触发
Build when a change is pushed to GitLab. GitLab CI Service URL: 当代码有更新的时候触发
GitHub hook trigger for GITScm polling 通过Github钩子触发
Poll SCM 定期检查代码有无更新,有更新时触发
- 构建配置:这里我们选择Build a Visual Studio project or solution using MSBuild(其他方式请自行探索),在此之前我们需要打开Jenkins->系统管理->全局工具管理对MSBuild进行配置。
- 配置构建后操作