从批处理文件中检索变量的输出/状态到 jenkins 管道

Try*_*tch 2 batch-file jenkins-pipeline

我正在尝试通过将 env 变量最初设置为 true 来将 bat 中可用变量的输出/状态检索到 jenkins 管道。

我的期望是,根据在 bat 内部分配的变量的值(即status=false),下一阶段无法执行,因为在该阶段给出了表达式:

pipeline {
    agent any
    environment{
        STATUS='TRUE'
    }
    stages {
        stage('test1') {

            steps {
                bat '''set status=FALSE 
echo %status%'''   
                echo "$status" 
            }

        }
       stage('test2') {
            when{
               environment name: 'STATUS', value: 'TRUE' 
                }
            steps {
                input message: 'Push', ok: 'GO!!'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前得到的输出是o/p: false用于 bat 执行的,下一步将输出提供为 true。

hak*_*iri 5

echo "$status"是管道,那里的环境STATUS变化的节点上完成的。AFAIK 这不会反映在管道本身中。

你可以做的是returnStdout: true在管道中使用和维护这个变量状态

def script = '''set status=FALSE 
    echo %status%'''   

def status = bat(script: script, returnStdout: true)
echo "$status" 
Run Code Online (Sandbox Code Playgroud)