• 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 - 参考信息

  • 相关阅读:
    找到一个牛的一逼的,超简易ssm和ssh的学习网址
    idea,mybatis读取配置文件报错:Could not find resource configuration.xml
    用JS获取地址栏参数的方法
    IntelliJ IDEA的编译设置
    Tomcat,eclipse热部署的三种方式
    bootstrap的模态框
    JQUERY获取当前页面的URL信息
    异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
    python生成式:列表、字典、集合
    python命令行获取参数
  • 原文地址:https://www.cnblogs.com/anliven/p/6372237.html
Copyright © 2020-2023  润新知