首页 > 解决方案 > 如何在詹金斯管道的舞台外传递一个变量

问题描述

我已将 env 变量“status”设置为 true,并且在执行以下代码时 test2 阶段被跳过,即使我将 env 状态声明为 true。任何人都可以帮助我进一步进行

使用 Jenkins 版本 2.150 及其管道脚本

pipeline {

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

        stage('test2') {
            when{
                expression {
                    STATUS = 'TRUE'
                }
            }
            steps {
                input message: 'Push to env', ok: 'GO!!'
            }
        }

    }
}

标签: batch-filejenkins

解决方案


您正在为您的状态设置一个值。应使用“==”运算符进行比较。我认为下面的示例应该有效。查看官方文档以获取更多信息:https ://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/

stage('test2') {
    when{
        expression {
            STATUS == 'TRUE'
        }
    }

推荐阅读