我正在尝试在声明式管道中创建条件部署阶段;我所拥有的是:
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
语句确实根据用户选择正确显示了true
或false
,但是无论是否{{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!"
}
}
}
}