输入和何时上台

时间:2019-11-26 15:30:28

标签: jenkins jenkins-pipeline jenkins-groovy

我正在尝试在声明式管道中创建条件部署阶段;我所拥有的是:

pipeline {

    agent any

    stages {

        stage("Push Large Binaries") {
            input {
                message "Should we push the large binaries?"
                parameters {
                    booleanParam(
                        name: '_PUSH',
                        defaultValue: true,
                        description: 'set to true to push the docker image')
                }
            }
            when {
                expression {
                     _PUSH == true
                }
            }
            steps {
                echo "hi ${_PUSH}"
                echo "pushing..."'
            }
        }

        stage("Say Goodbye"){
            steps {
                echo "Goodbye!"
            }
        }
    }
}

出于某些奇怪的原因,尽管echo语句确实根据用户选择正确显示了truefalse,但是无论是否{{1} }复选框未选中

知道代码有什么问题吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

总是考虑Java是什么“后面”,并且您必须使用类型,在这种情况下,您所发出的问题是您将其与布尔值进行了匹配,但是如果您将相等性作为字符串进行匹配,则会得到您期望什么。

Outlook.NameSpace _outlookNameSpace;
Outlook.MAPIFolder _SentItems;
Outlook.Items _items;

您将获得的另一种选择是布尔值。请注意,如果您想要一个“输入”来提示您输入许多值,则它将返回一个Map而不是Boolean。 :

pipeline {

    agent any

    stages {

        stage("Push Large Binaries") {
            input {
                message "Should we push the large binaries?"
                parameters {
                    booleanParam(
                        name: '_PUSH',
                        defaultValue: true,
                        description: 'set to true to push the docker image')
                }
            }
            when {
                expression {
                     _PUSH == "true" // Match to a String
                }
            }
            steps {
                echo "hi ${_PUSH}"
                echo "pushing..."
            }
        }

        stage("Say Goodbye"){
            steps {
                echo "Goodbye!"
            }
        }
    }
}