19-Jenkins-Pipeline-声明式流水线语法-input/when指令
Posted 爱学习de测试小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19-Jenkins-Pipeline-声明式流水线语法-input/when指令相关的知识,希望对你有一定的参考价值。
目录
前言
- 本篇继续学习新的指令,input和when
input
- 允许在一个stage…显示输入并等待。在input...中写一些条件,有效输入并提交后,job会继续执行,否则一直等待输入。
配置项
- message:必需的。 这将在用户提交
input
时显示,用来提示用户输入信息 - id:可选标识符, 默认为
stage
名称 - ok:`input`表单上的"ok" 按钮的文本。
- submitter:可选的以逗号分隔的用户列表或允许提交
input
的外部组名。默认允许任何用户。(可用来做权限控制) - parameters:提示提交者提供的一个可选的参数列表,和前面学习parameters一样
脚本示例
pipeline
agent any
stages
stage('input')
input
message "Should we continue?"
ok "Yes, we should."
submitter "admin"
parameters
string(name: 'PERSON', defaultValue: 'Mr 大海', description: 'Who should I say hello to?')
steps
echo "Hello, $PERSON, nice to meet you."
在Console Output中查看
when
- 允许流水线根据给定的条件决定是否应该执行阶段。
when
指令必须包含至少一个条件。 如果when
指令包含多个条件, 所有的子条件必须返回True,阶段才能执行
内置条件
- branch:当正在构建的分支与模式给定的分支匹配时,执行这个阶段, 例如:
whenbranch 'master'
。注意,这只适用于多分支流水线。 - environment:当指定的环境变量是给定的值时,执行这个步骤, 例如:
when environment name: 'DEPLOY_TO', value: 'production'
- expression:当指定的Groovy表达式评估为true时,执行这个阶段, 例如:
when expression return params.DEBUG_BUILD
- not:当嵌套条件是false时,执行这个阶段,必须包含一个条件,例如:
when not branch 'master'
- allOf:当所有的嵌套条件都正确时,执行这个阶段,必须包含至少一个条件,例如:
when allOf branch 'master'; environment name: 'DEPLOY_TO', value: 'production'
- anyOf:当至少有一个嵌套条件为真时,执行这个阶段,必须包含至少一个条件,例如:
when anyOf branch 'master'; branch 'staging'
脚本示例
pipeline
agent any
environment
flag = true
stages
stage('Example Build')
steps
echo 'Hello World'
stage('Example Deploy')
when
expression
return (flag == "true" )
steps
echo 'Deploying'
以上是关于19-Jenkins-Pipeline-声明式流水线语法-input/when指令的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins教程——从安装到部署Docker服务声明式流水线HelloWorld
16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令