19-Jenkins-Pipeline-声明式流水线语法-input/when指令

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19-Jenkins-Pipeline-声明式流水线语法-input/when指令相关的知识,希望对你有一定的参考价值。

目录

前言

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指令的主要内容,如果未能解决你的问题,请参考以下文章

流水线pipeline招式之声明式(前篇)

Jenkins教程——从安装到部署Docker服务声明式流水线HelloWorld

史上最全 Jenkins Pipeline流水线详解

16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令

18-Jenkisn-Pipelin-声明式流水线语法-triggers/stage/tool

Jenkins系列-Pipeline语法全集