1、关于Jenkins Pipeline

(管道)是Jenkins中支持持续集成(Continuous Integration)、持续交付(Continuous delivery,即所谓的CI/CD)的一套插件组合。

2、Jenkins Pipeline 优点


        软件的每一次提交更改和重新发布都会经历一个复杂的过程,这个过程需要可靠和可重复的方式构建软件项目,需要通过多个测试阶段和部署阶段,而Jenkins Pipeline能通过特定的Pipeline语法,进行自动化构建、测试、部署。

        Jenkins 从根本上说是一个支持多种自动化模式的自动化引擎。Pipeline 在 Jenkins 上添加了一组强大的自动化工具,支持从简单的持续集成到全面部署的用例。通过对一系列相关任务进行建模,用户可以利用 Pipeline 的众多特性:


  • 维护性:Pipeline 在代码中实现,通常检查到源代码控制中,使团队能够编辑、审查和迭代他们的交付管道。
  • 耐用性:Pipeline 可以在 Jenkins 控制器的计划和计划外重启中保留下来。
  • 可暂停:Pipeline 可以选择停止并等待人工输入或允许,然后再继续管道运行。
  • 通用性:Pipeline 支持复杂的持续部署需求,包括分叉/连接、循环和并行执行工作的能力。
  • 可扩展:Pipeline 插件支持对其的自定义扩展以及与其他插件集成的多种选项。


3、Jenkins Pipeline 构建方法

1)新建任务

        登陆到Jenkins服务器,在Jenkins服务器主页面的左边工具栏中选择新建任务

jenkins pipeline选择java环境 jenkins pipeline scm_服务器

         输入一个自定义的流水线任务名称,并选择任务类型为流水线

jenkins pipeline选择java环境 jenkins pipeline scm_自定义_02

 2)参数设置         

        接着就是流水线任务参数的配置过程,根据不同项目的不同需求,可以选择合适的构建参数来提升自动化能力及使用便捷性。下面将从作者的一个项目来对部分构建参数和配置方法进行说明。

        在General选项卡中,选择参数化构建过程,在此指定的每个参数都有一个Name和某种Value,具体取决于参数类型。这些名称-值对将在构建开始时作为环境变量导出,允许构建配置的后续部分(例如构建步骤)访问这些值,如果选择不输入任何内容,则构建将从每个参数的默认值开始。

jenkins pipeline选择java环境 jenkins pipeline scm_服务器_03

 参数化构建过程使用到的参数包括:

         Git参数:因为项目使用的代码仓库是GitHub,且多人开发项目在GitHub上往往有多个代码分支,此参数可以指定每次运行Pipeline任务时拉取代码的分支。(其中,名称为此插件的名称;描述为此插件的额外描述信息;参数类型为分支,并且指定了一个默认值。)

         选项参数: 一般项目的编译模式有Release和Debug两种,所以在选项参数中加入编译选项参数,在后续编译的时候可以方便指定编译模式。(其中,名称为此插件的名称;选项为提供可支持的选项,每一行一个,且第一个作为默认;描述为对此插件的额外信息。)

jenkins pipeline选择java环境 jenkins pipeline scm_Jenkins_04

jenkins pipeline选择java环境 jenkins pipeline scm_github_05

构建触发器高级项目选项中并未设置参数,均为默认状态,因此在这里不做描述。

jenkins pipeline选择java环境 jenkins pipeline scm_自定义_06

 接下来就是Pipeline的核心,Pipeline语法。这里jenkins提供获取Pipeline脚本两种方式,一种是选择Pipeline script,直接在下面的文本框输入任务构建脚本;另一种是选择Pipeline script from SCM,需要在GitHub仓库中指定Jenkins file的路径及名称。

jenkins pipeline选择java环境 jenkins pipeline scm_jenkins_07

 

jenkins pipeline选择java环境 jenkins pipeline scm_自定义_08

4、可能遇到的错误及解决办法

1)找不到新建任务的按钮

        在jenkins服务器主页面上找不到新建任务的按钮,可能是jenkins管理员未赋予当前用户添加任务、管理节点等权限,只需向管理员申请相应权限即可。

2)不清楚每个插件的意义及使用方法

        Jenkins Pipeline中有大量构建选项参数、插件选择等,如果不清楚某个选项的含义,可以点击每个选项后面的“?”参数,查看相关说明。

jenkins pipeline选择java环境 jenkins pipeline scm_Jenkins_09