1、Jenkins Pipeline总体介绍
- Pipeline,简而言之,就是一台运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
- Pipeline是Jenkins2.X最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变。
- 详细介绍可见https://jenkins.io/2.0
2、什么是Jenkins Pipeline
- Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。
- 持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完整过程的自动化表现。
- Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language(DSL)syntax可以达到Pipeline as Code的目的
- Pipeline as Code: Jenkinsfile 存储在项目的源代码库
3、Jenkins Pipeline核心概念
- Stage
- 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作,如:“Build”,“Test”, "Deploy"。
-注意,Stage是一个逻辑分组的概念,可以跨多个Node。
- Node
- 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent。是执行Step的具体运行环境 。
- Step
- 步骤,Step是 最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类 Jenkins Plugin提供,例如:sh 'make'
4、为什么要用Pipeline?
- 代码(Code): Pipeline以代码的形式实现,通常被检入源代码控制,是团队能够编辑,审查 和迭代其CD流程。
- 可持续性(Durable):Jenkins重启或者中断后都不会影响Pipeline Job。
- 可停顿(Pausable):Pipeline可以选择停止并等待人工输入或者批准,然后再继续Pipeline运行。
- 多功能(Versatile):Pipeline支持实现现实世界的复杂CD要求,包括fork/join子进程,循环和并行执行工作的能力。
- 可拓展(Extensible):Pipeline插件支持其DSL的自定义扩展及与其他插件集成的多个选 项。