Jenkins

1 - Jenkins简介

Jenkins是一个开源项目,其前身为Hudson,旨在提供一个开放易用的持续集成工具,用于监控持续重复的工作。
主要用于自动而持续地构建/测试软件项目;监控外部调用执行的工作。
Jenkins是驱动整个持续交付和DevOps的核心组件,能够实现项目的自动构建、打包、测试、发布等。

  • 易于安装、易于配置、插件众多、具有分布式主从结构
  • 提供了不同类型、不同规模的项目的CI/CD解决方案
  • 版本迭代和维护速度快
  • 作为易用的CI系统,有助于开发者从繁杂的集成中解脱出来,专注更为重要的业务逻辑实现
  • 监控集成中存在的错误,提供详细的日志文件和提醒功能
  • 以图表的形式形象地展示项目构建的趋势和稳定性

1.1 Jenkins的用途

总的说来,使用Jenkins的流水线处理可以定义各种各样的操作(比如构建、测试等),并将这些操作像管道(pipe)一样自由地组合,从而自动、流畅地执行一系列处理。
不仅可以轻松地管理或执行构建、测试等单个工作,还能将这些工作连接起来批量执行,确保操作的安全性和准确性,减少操作负担,提高操作效率。

  • 可以将操作以项目(project)为单位整合到一起运行,更加简单地进行命令操作。
  • 消除了手工操作,是操作变得更加安全、可靠。
  • 可以将项目的运行记录和结果保存下来,以供整个团队查看。

具体说来,就是完成了如下操作:

  • 流水线列表 :显示每个流水线的总体状态
  • 构建项目:自动化打包,避免本地配置出错而导致打包失败等异常情况
  • 跑测试用例检测bug:自动化测试,例如:只要代码发生改动,就运行回归测试的所有用例
  • 静态代码检测:检测基本的代码问题,比如潜在的内存泄露等
  • 部署:随时部署,可以设定在打包完成之后的操作
  • GUI:支持在GUI上对命令的参数进行修改,并在改写后运行

1.2 Jenkins的部署

单节点(Master)部署

这种部署适用于大多数项目,其构建任务较轻,数量较少,单个节点就足以满足日常开发所需。

多节点(Master-Slave)部署

通常规模较大,代码提交频繁(意味着构建频繁),自动化测试压力较大的项目都会采取这种部署结构。
在这种部署结构下,Master通常只充当管理者的角色,负责任务的调度,slave节点的管理,任务状态的收集等工作,而具体的构建任务则会分配给slave节点。
一个Master节点理论上可以管理的slave节点数是没有上限的,但通常随着数量的增加,其性能以及稳定性就会有不同程度的下降,具体的影响则因Master硬件性能的高低而不同。
多节点(Master-Slave)部署通常以“Jenkins + Docker”的方式来部署,可以避免当测试用例变得海量以后可能会造成的一些问题。

1.3 Jenkins的插件

Jenkins通过插件来增强功能,可以集成不同的构建工具、云平台、分析和发布工具等,从而满足不同组织或用户的需求。
Jenkins 提供了不同的的方法来安装插件(需要不同级别的权限)

  • 在web UI使用 "插件管理器":Manage Jenkins --》 Manage Plugins (系统管理--》管理插件),选中相应插件,根据提示安装即可。
  • 使用Jenkins CLI install-plugin 命令。
  • 手工安装.hpi 文件(插件被打包成独立的 .hpi 文件, 包含有所有必需的代码, 图像和成功运行所需要的资源)

注意:前两种方法要求 Jenkins 主机能够从插件管理中心(https://plugins.jenkins.io/)下载元数据,否则只能通过手工安装.hpi 文件来完成。

2 - 官网信息

2.1 英文官网

2.2 中文官网

2.3 下载、镜像与包

Jenkins下载包的发布版本

  • Weekly:每周发布,包含最新问题的修正和最新功能
  • Long-term Support(LTS):从最近12周的发布版中选出的比较稳定的版本,适合保守的客户,提供更加稳定的功能

3 - 参考信息

原文地址:https://www.cnblogs.com/anliven/p/6372237.html