本章涵盖了Jenkins Pipeline功能的所有推荐方面,包括如何:必威国际有限公司
开始使用Pipeline-介绍如何定义Jenkins必威国际有限公司管道(即你的管道
)通过蓝色的海洋,通过经典的UI或在供应链管理,
创建并使用必威国际有限公司Jenkinsfile
-涵盖用例场景如何工艺和构建您的必威国际有限公司Jenkinsfile
,
一起工作分支和拉取请求,
使用Docker和Pipeline介绍了Jenkins如何在必威国际有限公司代理/节点上调用Docker容器必威国际有限公司Jenkinsfile
)来建立你的管道项目,
使用不同的开发工具以促进Pipeline的创建,以及
一起工作管道的语法-这个页面是所有声明式管道语法的全面参考。
有关Jenkins用户手册中内容的概述,请参见必威国际有限公司用户手册概述.
必威国际有限公司Jenkins Pipeline(简称“Pipeline”,缩写为P)是一套支持实现和集成的插件持续交付管道詹金斯。必威国际有限公司
一个连续输送(CD)管道是将软件从版本控制直接传递给用户和客户的过程的自动表达。软件的每一个变更(在源代码控制中提交)在发布的过程中都要经过一个复杂的过程。这个过程包括以可靠和可重复的方式构建软件,以及通过多个测试和部署阶段来推进构建的软件(称为“构建”)。
Pipeline提供了一组可扩展的工具,用于将简单到复杂的交付管道建模为通过管道领域特定语言(DSL)语法.[1]
Jenkins Pipeline的定义被必威国际有限公司写入一个文本文件(称为必威国际有限公司Jenkinsfile
),然后可以提交到项目的源代码控制存储库。[2]这是“管道即代码”的基础;将CD管道作为应用程序的一部分进行版本控制和审查,就像其他代码一样。
创建一个必威国际有限公司Jenkinsfile
并且将其投入到源代码控制中会带来许多直接的好处:
自动为所有分支和pull请求创建一个Pipeline构建流程。
对Pipeline的代码审查/迭代(以及剩余的源代码)。
管道的审计跟踪。
单一的真相来源[3.]管道,它可以被项目的多个成员查看和编辑。
而定义管道的语法,无论是在web UI中还是与必威国际有限公司Jenkinsfile
是一样的,它通常被认为是在一个必威国际有限公司Jenkinsfile
然后把它检查到源代码管理。
必威国际有限公司从根本上说,Jenkins是一个支持许多自动化模式的自动化引擎。Pipeline为Jenkins添加了一套强大的自动化工具,支持从简单的持续集成到全面的CD管道的用例。必威国际有限公司通过对一系列相关任务进行建模,用户可以利用Pipeline的许多特性:
代码管道在代码中实现,通常检入到源代码控制中,使团队能够编辑、审查和迭代他们的交付管道。
耐用:管道可以在Jenkins控制器计划内和计划外重启后继续运行。必威国际有限公司
Pausable:在继续运行Pipeline之前,管道可以选择停止并等待人工输入或审批。
多才多艺的:管道支持复杂的实际CD需求,包括分叉/连接、循环和并行执行工作的能力。
可扩展的: Pipeline插件支持对其DSL的自定义扩展[1]和多种选项的集成与其他插件。
虽然詹金斯一必威国际有限公司直允许以基本形式将Freestyle Jobs链接在一起执行顺序任务,[4]Pipeline让这个概念成为Jenkins的一等公民。必威国际有限公司
下面的流程图是在Jenkins Pipeline中容易建模的一个CD场景的示例:必威国际有限公司
在声明性管道语法中,管道
block定义了整个Pipeline中所做的所有工作。
管道{代理任何(1)阶段{阶段('构建') {(2){步骤//(3)}}阶段('测试') {(4){步骤//(5)}}阶段('部署') {(6){步骤//(7)} } } }
1 | 在任何可用代理上执行此Pipeline或其任何阶段。 |
2 | 定义“构建”阶段。 |
3. | 执行一些与“构建”阶段相关的步骤。 |
4 | 定义“测试”阶段。 |
5 | 执行一些与“Test”阶段相关的步骤。 |
6 | 定义“部署”阶段。 |
7 | 执行一些与“Deploy”阶段相关的步骤。 |
在脚本管道语法中,一个或多个节点
block在整个Pipeline中执行核心工作。尽管这不是脚本化管道语法的强制要求,但将你的管道工作限制在节点
Block做了两件事:
通过向Jenkins队列添加一个项目来调度块中包含的步骤运行。必威国际有限公司只要节点上的执行程序空闲,这些步骤就会运行。
创建一个工作区(一个特定于该Pipeline的目录),可以在其中对从源代码控制中签出的文件进行处理。
警告:根据您的Jenkins配置,一些工作必威国际有限公司空间在一段时间不活动后可能不会自动清理。查看门票和讨论链接必威国际有限公司詹金斯- 2111为更多的信息。
节点{(1)阶段('构建') {(2)//(3)}阶段('测试') {(4)//(5)}阶段('部署') {(6)//(7)}}
1 | 在任何可用代理上执行此Pipeline或其任何阶段。 |
2 | 定义“构建”阶段。阶段 块在脚本管道语法中是可选的。然而,实现阶段 Scripted Pipeline中的block提供了Jenkins UI中每个阶段的任务/步骤子集的更清晰的可视化。必威国际有限公司 |
3. | 执行一些与“构建”阶段相关的步骤。 |
4 | 定义“测试”阶段。 |
5 | 执行一些与“Test”阶段相关的步骤。 |
6 | 定义“部署”阶段。 |
7 | 执行一些与“Deploy”阶段相关的步骤。 |
这里有一个例子必威国际有限公司Jenkinsfile
使用声明式管道语法——可以通过单击切换脚本管道下面的链接:
管道{(1)代理任何(2)skipstagesafter不稳定()}阶段{阶段()'构建') {(3){步骤(4)上海'使'(5)}}阶段('测试'){步骤'做检查'junit'/ * * / * . xml报告'(6)}}阶段('部署'){步骤'让发布'} } } }
1 | 管道 是特定于声明式管道的语法,它定义了一个包含执行整个管道的所有内容和指令的“块”。 |
2 | 代理 是特定于声明式管道的语法,它指示Jenkins为整个管道分配执行器(在节点上)和工作空间。必威国际有限公司 |
3. | 阶段 语法块描述的是管道阶段.阅读更多关于阶段 的声明性管道语法中的块管道的语法页面。正如前面提到的以上,阶段 块在脚本管道语法中是可选的。 |
4 | 步骤 是特定于声明式管道的语法来描述在此运行的步骤吗阶段 . |
5 | 上海 是一个管道一步(提供的管道:节点和进程插件)来执行给定的shell命令。 |
6 | junit 是另一个管道一步(提供的JUnit插件),以聚合测试报告。 |
7 | 上海 是一个管道一步(提供的管道:节点和进程插件)来执行给定的shell命令。 |
关于管道语法的更多信息管道的语法页面。