一.简介
Jenkins是一个开源项目,提供了一种易于使用可扩展的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实时监控集成时存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
2009年,甲骨文收购了Sun并继承了Hudson代码库。在 2011 年年初,甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目:
Jenkins:由大部分原始开发人员组成
Hudson:由甲骨文公司继续管理
Jenkins 其本身上没有整合太多的功能,只是提供了一个持续集成的WEB平台,它是通过大量的插件,实现了一系列的持续化集成的工作。
例如通过gitlab插件进行代码下载,指定下载分支。通过Git Parameter Plug-In动态获取代码的分支信息,构建时可以选择分支发布。
觉得默认显示的pipeline流程页面不好看,用Blue Ocean插件可以显示更舒服的流程页面。
实际上不使用那些插件,只单纯写一个shell脚本,里面写上git clone代码,编译再ansible发布,而jenkins只是运行这个脚本并打印日志也是可以的。并且也推荐用这种方法,这里使用ansible插件就需要在jenkins中进行配置不方便后续进行迁移。而在机器上安装一个Ansible并在脚本中运行playbook会更加方便管理。
二.特点
- 易于安装,只要把jenkins.war部署到servlet容器,不需要数据库支持
- 易于配置,所有配置都是通过其提供的web界面实现
- 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知
- 生成JUnit/TestNG测试报告
- 分布式构建支持Jenkins能够让多台计算机一起构建/测试
- 支持多种扩展插件,你可以开发适合自己团队使用的工具
- 支持pipeline流水线,可以用代码描述配置过程,方便使用