什么是Jenkins Pipeline?
Jenkins Pipeline(或简称为”Pipeline”)是一套Jenkins插件,将持续交付的实现和实施集成到Jenkins 中。持续交付Pipeline 自动化将基于版本控制管理的软件持续的交付到用户手中。
Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为Jenkinsfile )中,该文件可以被放入项目的源代码控制库中。
快速使用Pipeline 的步骤
- 将以下示例代码复制到代码仓库中并命名为Jenkinsfile;
2. 单击Jenkins中的New Item 菜单;
3. 为新工程起一个名字(例如My Pipeline) ,选择Multibranch Pipeline;
4. 单击Add Source 按钮,选择想要使用的源码仓库类型并填写详细信息;
5. 单击Save 按钮,观察Pipeline运行;
创建提交到源码管理系统中的Jenkinsfile 直接的好处如下:
Pipeline上的代码评审与迭代
对Pipeline进行审计跟踪
Pipeline的单一可信数据源,能够被同一项目的多个成员查看和编辑
Pipeline支持两种语法:声明式(在Pipeline 2.5 引入)和脚本式流水线。两种语法都支持构建持续交付流水线。两种都可以在web UI 或Jenkinsfile 中定义流水线,通常认为创建一个Jenkinsfile 并将其提交到源代码控制仓库是最佳实践。
创建Jenkinsfile
Jenkinsfile 是一个文本文件,它包含了Jenkins 流水线的定义并被检入源代码控制仓库。下面的流水线实现了基本的三阶段持续交付流水线:
不是所有的流水线都有上述的三个阶段,但为大多数项目定义这些阶段是一个很好的开始。上面的声明式流水线示例包含了实现持续交付流水线的最小必要结构。agent指令是必需的,它指示Jenkins 为流水线分配一个执行器和工作区。没有agent 指令的话,声明式流水线不仅无效,它也不可能完成任何工作,默认情况下,agent 指令确保源代码仓库被检出并在后续阶段的步骤中可被使用。
一个合法的声明式流水线还需要stages 指令和steps 指令,因为它们指示Jenkins 要执行什么,在哪个阶段执行。
执行Pipeline
当定义好Pipeline 之后,就可以在传统Jenkins 页面中或BlueOcean 中执行Pipeline。点击构建按钮;
在BlueOcean中查看执行结果;
总结
Jenkins Pipeline 有诸多的优点,如代码(Code)化,Pipeline以代码的形式实现,通常可以被源代码控制,使团队能够编辑、审查和迭代其CD流程;可持续性,Jenkins重启或者中断后都不会影响Pipeline Job;Pipeline支持复杂的CD要求,包括fork/join子进程,循环和并行执行任务的能力;和可扩展性,Pipeline插件支持自定义扩展以及与其他插件集成。希望大家通过这篇简短的介绍能够熟悉Jenkins Pipeline 的基本知识。