DevOps系列之Jenkins pipeline-05Jenkins核心语法3

1. input 流水线交互

使用场景:有些需要人工确认的步骤,例如选择部署的环境。

参数解析

  • message: 提示信息
  • ok: 表单中确认按钮的文本
  • submitter: 提交人,默认所有人可以
  • parameters: 交互时用户选择的参数

复制粘贴到代码中运行

查看运行信息

发现项目暂停,点击需要输入而暂停

 选择部署环境

点击确定,项目运行结束查看输出信息。

 其他输入方式:阶段视图上也可以进行选择。

 打开Blue Ocean

 也有很明确的提示

 2. when 阶段运行控制

判断条件

  • 根据环境变量判断
  • 根据表达式判断
  • 根据条件判断(not/allOf/anyOf)

代码实例:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'build......'
            }
        }
        stage('Deploy') {
            when {
                environment name: 'DEPLOY_TO', value: 'DEV'
            }
            steps {
                echo 'Deploying.......'
            }
        }
    }
}


//  allOf 条件全部成立
 when {
     allOf {
         environment name: 'CAN_DEPLOY', value: 'true'
         environment name: 'DEPLOY_ENV', value: 'dev'
     }
 }


// anyOf 条件其中一个成立
when {
     anyOf {
         environment name: 'CAN_DEPLOY', value: 'true'
         environment name: 'DEPLOY_ENV', value: 'dev'
     }
 }

在流水线中使用anyOf,当两个条件都满足时,才会运行。

Version为1.0  envType为dev时运行

 任意一个满足后,可以执行

 

 3. parallel 阶段并行

场景: 自动化测试,多主机并行发布。

pipeline {
    agent any
    stages {
        stage('Parallel Stage') {
            failFast true
            parallel {
                stage('windows') {
                    agent {
                        label "build"
                    }
                    steps {
                        echo "windows"
                    }
                }
                stage('linux') {
                    agent {
                        label "build"
                    }
                    steps {
                        echo "linux"
                    }
                }
            }
        }
    }
}

运行流水线查看blue ocean,是并行构建的。

failFast true 参数,使当并行的阶段,有一个出错时,其他阶段都不执行。

添加报错。

pipeline {
    agent any
    stages {
        stage('Parallel Stage') {
            failFast true
            parallel {
                stage('windows') {
                    agent {
                        label "build"
                    }
                    steps {
                        echo "windows"
                        error "error!!"
                    }
                }
                stage('linux') {
                    agent {
                        label "build"
                    }
                    steps {
                        echo "linux"
                         sh  "sleep 100"
                    }
                }
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lee_yanyi/article/details/123795841
今日推荐