Jenkins是一个功能非常强大的持续集成和持续交付的开源项目,几乎可以处理任何类型的自动构建或者持续集成。Jenkins可以用于自动化部署,也可以用于自动化测试的调度。
Jenkins官网:
很多工作都可以放到Jenkins来进行,最终实现一个完整的流程。
用户可以通过登录到Jenkins的Master管理界面中去进行节点的配置管理、Jenkins的插件管理、Job任务的配置和分发、Jenkins用户的管理、系统运行的监控以及Jenkins的系统全局设置等操作。开发人员提交代码后,Jenkins上的job就会开始“自动编译打包→自动部署→单元测试/代码扫描→自动测试”。
单元测试这边一般是Junit之类,代码扫描算是笼统的称呼,实际上可以有很多,比如checkstyle、findBugs、sonar等。在Jenkins上最基本的就是job了,通过job之间建立关联就可以形成前面的这个流程,并且基本上很少需要人工干预。此外就是各种各样的插件,使得Jenkins这个平台能够整合很多强大的功能进来,满足用户的需要。
Jenkins也提供了REST API的方式供用户或者其他系统来调用Jenkins,API有XML API、JSON API以及Python API三种不同的表现类型。
Jenkins是支持常见的Master-Slave架构的持续集成项目,很多开源项目都使用了这一常见的运行架构,比如大数据中常用的Hadoop项目等都用了这一运行架构。
在Jenkins中,Master节点可以用来负责Slave节点的管理、用户提交的Job的配