首先,了解持续集成与Jenkins的概念。
持续集成
持续集成就是我们常说的CI,是一种软件开发实践,即团队开发成员经常集成项目,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的编译,发布,自动化回归测试来验证,从而尽快地发现集成错误。
可以说,持续集成是为了持续交付。
持续集成的核心价值在于:
- 持续集成中的每一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间费用和工作量。
- 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的,换言之,任何时间点都能第一时间发现软件的集成问题,是任意时间发布可部署的软件成为了可能。
- 持续集成能有利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。
Jenkins
Jenkins时一个软件界非常流行的开源CI服务器,Jenkins时基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能为:
- 持续的软件版本发布/测试项目
- 监控外部调用执行的工作
jenkins的特点:
- 易安装,易配置
- 基于web访问,用户界面友好,直观
- 基于Java开发,不仅限于Java语言的构建
- 变更支持,Jenkins能从代码仓库中获取并产生代码更新列表并输出到编译输出信息中。
- 测试报告:以图表等形式提供详细的测试报表功能
- 插件:支持大量插件扩展了Jenkins的功能。
工作流程:
拉取代码 –> 编译版本 –> 测试回归 –> 发布
Jenkins会定时获取最新的代码,自动运行你的编译脚本,编译成功后,运行测试脚本,这一步成功后,会帮助你把程序发布出去,虽然Jenkins可以帮助你自动的发布,但是最好由人工发布,确认一下为好。
总而言之,Jenkins的好处是极大的减少了你的重复劳动,并且有效规避掉了项目建设过程中有可能出现的问题。
Jenkins的安装在此不再赘述,百度一下,你就知道。
Jenkins的使用
以一个例子来讲述使用过程。
(本人也是初次使用,可能会有错误,大家可以指出)
1.首先,创建一个自由风格的任务。
2.配置general
名称不建议为中文,不能重复。
描述就是对该项目的描述,这里是我的一个项目。
GitHub project:GitHub使用,里面配置响应的url和需要显示的名称就可以了。
Throttle builds:节流沟通,通过设置时间段内允许并发的次数来实现构建的控制。
丢弃旧的构建:设置构建历史的保存策略,可以节省空间,可以按天数或者个数来设置。
3.源码管理
源码管理:选择使用svn或git
这里我使用的是Git,输入项目仓库的url,需要时可能需要配密钥。
4.构建触发器
构建触发器:
定时构建:日程表的参数
第一个参数:表示分钟minute,取值0~59
第二个参数:表示小时hour,取值0~23
第三个参数:表示天day,取值1~31
第四个参数:表示月,取值1~12
最后一个参数:表示星期week,取值0~7,0和7都表示星期天
轮询scm:设置定时检查代码仓库是否有变更,有变更则构建。
5.构建
不同的语言选择不同的构建方式:
execute windows batch command:执行Windows的cmd命令
execute shell:执行shell命令
invoke ant:调用ant,调用ant的执行脚本进行构建
invoke grade script:调用grade脚本,帮助我们自动打包
invoke top-level maven targets:调用maven
6.构建后操作
build other projects:构建其他项目
e-mail notification:发送邮件
7.构建
8.查看构建历史
总结:
以上过程大致可以总结为以下几步:
(准备条件,需要安装findbugs与构建语言对应的插件)
1. 新建,构建一个自由风格的任务
2. 源码管理,选择git或者svn
3. 构建触发器,定时构建或轮询scm,设置触发时间
4. 构建:选择构建方式
5. 构建后操作:可选择发布到远程服务器上
6. 进行构建
7. 查看构建日志。