如何根据前一阶段的输出在Jenkins中运行条件失败

时间:2018-09-09 16:13:12

标签: jenkins jenkins-pipeline

下面是我用来提出问题的基本结构。

stage('Run pre-checks') {
    steps {
        //Run pre-check scripts
    }
}
stage('Deploy config ') {
    when {
       expression {
        //Insert expression here
       }
    }
    steps {
        //Run a script
    }
}

基于以下构造,我要执行的操作是仅在该阶段的stdout上显示“ run pre-checks”脚本的特定输出时才运行特定脚本,这将是python脚本。如果预检查显示此输出,则将跳过第二步而不是运行它。有人会知道能够做到这一点的环境变量和/或方法吗?

1 个答案:

答案 0 :(得分:0)

Sh命令可以返回一个值,而不是打印它。

MY_OUTPUT = sh (
    script: '... your command....',
    returnStdout: true
)

然后,您可以使用MY_OUTPUT(trim(),substr ...)完成任何操作

文档的当前链接位于(Sh shell script):

  

returnStdout(可选)

     

如果选中,则任务的标准输出将作为步骤值作为String返回,而不是打印到构建日志中。 (如果有标准错误,仍然会打印到日志中。)您通常会希望在结果上调用.trim()来删除尾随的换行符。

     

类型:布尔值