参数化pipeline
使用parameters指令
pipeline {agent anyparameters {booleanParam(defaultValue: true,description: '',name: 'userFlag')}stages {stage('foo') {steps {echo "flag: ${params.userFlag}"}}} }
创建代码仓库
添加文件
新建Jenkinsfile文件
再次查看,有文件,左边有仓库菜单了
新建Jenkins流水线项目
其它不用设置,就设置流水线这里
获取仓库地址
点击立即构建
手动触发构建一次后,我们看下Jenkinsfile里设置的参数化构建是否已经同步到Jenkins项目中
查看已经同步成参数化构建,并且有个参数
我们点击查看可以添加的参数有哪些
我们看这里,立即构建变成了构建使用参数了。我们点击一下
布尔值参数,默认true是勾选上的
点击构建,查看这次构建日志。获取并打印参数值是true
parameters指令支持的参数类型以及多参数
string字符串类型
pipeline {agent anyparameters {string(name: 'DEPLOY_ENV',defaultValue: 'staging',description: '')}stages {stage('foo') {steps {echo "flag: ${params.userFlag}"}}} }
上面的手动触发构建一次后,就同步现在修改后的Jenkinsfile参数配置
点击构建。打印之前设置的布尔值变量,因为我们删除了,所以这个布尔值变量没了,这里获取为null。
name就是参数变量名。我们修改为打印这个参数变量,
再次点击构建一次,获取到我们设置的默认参数值
text,多行文本类型,换行\n
pipeline {
agent any
parameters {
text(name: 'DEPLOY_TEXT',defaultValue: 'One\nTwo\nThree\n',description: '')
}
stages {
stage('foo') {
steps {
echo "flag: ${params.DEPLOY_TEXT}"
}
}
}
}
手动触发构建,让新改的Jenkinsfile生效,下一次构建,就变成如下了
点击构建并查看打印的变量
BooleanParam 布尔型
我们上面的案例以及演示了布尔型的了,这里就不演示了
pipeline {agent anyparameters {booleanParam(name: 'DEBUG_BUILD',defaultValue: true,description: '')}stages {stage('foo') {steps {echo "flag: ${params.DEBUG_BUILD}"}}} }
choice,选择参数类型
pipeline {agent anyparameters {choice(name: 'CHOICES', choices: 'dev\ntest\nstaging',description: '请选择部署的环境')}stages {stage('foo') {steps {echo "flag: ${params.CHOICES}"}}} }
手动触发一次构建,同步Jenkinsfile配置,然后点击构建
选一次测试进行构建
查看Jenkins项目同步后配置
file 文件类型
password 密码类型
pipeline {agent anyparameters {password(name: 'PASSWORD', defaultValue: 'SECRET',description: 'A secret password')}stages {stage('foo') {steps {echo "flag: ${params.PASSWORD}"}}} }
手动触发一次构建,然后点击构建,可以看的已经生效
再次点击构建,查看结果,获取到密码
查看同步的Jenkinsfile配置
多参数
pipeline {agent anyparameters {booleanParam(defaultValue: true,description: '',name: 'userFlag')string(name: 'DEPLOY_ENV',defaultValue: 'staging',description: '')text(name: 'DEPLOY_TEXT',defaultValue: 'One\nTwo\nThree\n',description: '')choice(name: 'CHOICES', choices: 'dev\ntest\nstaging',description: '请选择部署的环境')password(name: 'PASSWORD', defaultValue: 'SECRET',description: 'A secret password')}stages {stage('foo') {steps {echo "flag: ${params.PASSWORD}"}}} }
手动触发构建一次,然后点击构建
Jenkins项目配置