jenkins05-参数化pipeline
- 参数化pipeline:是指可以通过传参来决定pipeline的行为。参数化让写pipeline就像写函数,而函数意味着可重用、更抽象。所以,通常使用参数化pipeline来实现一些通用的pipeline。
- 有两种方法配置参数化pipeline:
- (1)在Jenkins Web上配置
- (2)在pipeline中配置

1、parameters指令
- 参数化pipeline是通过parameters指令实现的,parameters指令只能放在pipeline块下。
- 为了满足不同的应用场景,参数化pipeline中的parameters指令支持多种参数类型:
- string:字符串类型。
- text:多行文本类型,换行使用\n。
- booleanParam:布尔类型。
- choice:选择参数类型,使用\n来分隔多个选项。
- file:文件类型,用户可上传文件。但是此类型存在Bug(无法拿到上传后的文件,所以不推荐使用)
- password:密码类型。
1、在pipeline中定义参数
pipeline {
agent any
parameters {
//字符串类型
string defaultValue: '', description: '项目名称', name: 'projectName', trim: false
//多行文本类型
text defaultValue: 'One\nTwo\nThree', description: '帮助说明', name: 'man'
//布尔类型
booleanParam defaultValue: true, description: '真假', name: 'boolName'
//选择参数类型
choice choices: ['master', 'release', 'dev'], description: '分支名称', name: 'branchName'
//密码类型
password defaultValue: '', description: '', name: 'GitLabPasswdUser01'
}
stages {
stage('Hello') {
steps {
echo "Hello ${params.projectName}"
}
}
}
}
2、使新定义的参数生效
- 在Jenkins新增参数后,至少要手动执行一次,它才会被Jenkins加载生效。生效后,在执行项目时,就可以设置参数值了,如图所示。

3、使用新定义的参数
- 被传入的参数会放到一个名为params的对象中,在pipeline中可直接使用。params.userFlag就是引用parameters指令中定义的userFlag参数。
2、由另一个pipeline传参并触发
- 既然存在参数化的pipeline,那么就表示可以在一个pipeline中“调用”另一个pipeline。在Jenkins pipeline中可以使用build步骤实现此功能。build步骤是pipeline插件的一个组件,所以不需要另外安装插件,可以直接使用。
- build步骤其实也是一种触发pipeline执行的方式,它与triggers指令中的upstream方式有两个区别:
- (1)build步骤是由上游pipeline使用的,而upstream方式是由下游pipeline使用的。
- (2)build步骤是可以带参数的,而upstream方式只是被动触发,并且没有带参数。
1
# #