什么是Jenkins Pipeline?
Jenkins Pipeline是一组插件,能够执行、集成持续分发的pipeline到Jenkins中。
常说的CI/CD,CD(continuous delivery)指的是持续交付,简单的理解,就是让软件产品在一个短周期的完成。CI指的是持续集成。
Declarative 对比 Scripted Pipeline 语法
Jenkinsfile可以写成两种类型的语法–Declarative和Scripted
它们的基础构建方式是不同的,Declarative Pipeline最近的一个特性:
- 比Scripted Pipeline提供了更丰富的句法特性
- 读写Pipeline code更加简单
Pipeline的一些名词概念
Pipeline
是一个用户定义的持续交付管道模型。Pipeline code定义了整个build 过程,一般包括build应用程序的stages,测试它,然后交付它。pipeline block是Declarative Pipeline语法中,关键部分。
Node
node就是指机器,是Jenkins环境的组成部分,用来执行Pipeline的。node block是Scripted Pipeline语法中,关键部分。
Stage
stage block定义了不同的任务,贯穿整个Pipeline(例如:“Build”, “Test”, "Deploy"等stage ),被许多插件用来可视化或者显示Jenkins Pipeline的状态或者进程(status/progress),以下的红圈中,就是stage,可以看到每个stage运行状态和时间。
Step
单任务(single task),step是告诉Jenkins在特定的点做什么,比如执行shell命令make,会用sh step: sh ‘make’ .
Declarative Pipeline
声明式Pipeline,pipeline block定义了贯穿整个Pipeline所有要做的工作
Scripted Pipeline
脚本Pipeline,node block定义了贯穿整个Pipeline所有要做的工作.
- 在Jenkins中添加要运行步骤的Item,一旦节点node空闲,步骤就会执行。
- 创建workspace,通过从github上check out代码,去做相关的工作。note: 要注意,未激活状态下有些workspace可能会自动清空,取决于你的Jenkins配置。
Pipeline例子
使用Declarative Pipeline语法的Jenkinsfile