jenkins groovy 逻辑如果条件有效
jenkins groovy logical if conditions validity
我在 jenkins groovy 脚本的“if”条件下添加了这个
if ((sign_check == true) && ((name == "abc") || (name == "def"))){
println "hello - yes"
}
甚至尝试使用下面的方法
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
当脚本被“sign_check=false”和“name=”def触发时,这个if条件应该不会触发“hello - yes”,但在我的例子中,它仍然是碰巧触发“你好 - 是的”。
请告知 if 条件到底有什么问题。
问题可能是 sign_check
变量未分配为布尔值。
以下是一些测试:
测试 1:给出正确的结果。
它不会打印“hello -yes”
script{
def sign_check = false
def name ="abc"
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
}
测试 1:给出正确的结果。
它不会打印“hello -yes”
script{
def sign_check = false
def name ="abc"
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
}
如果您使用参数化选项,那么您应该 select 变量 sign_check
作为布尔值而不是字符串:
pipeline {
agent any
parameters
{
booleanParam(defaultValue: true, description: '', name: 'sign_check')
string(name: 'name', defaultValue: "abc", description: 'What is name?')
}
stages {
stage('Hello') {
steps {
script{
if (params.name == "abc" || params.name == "def"){
if (params.sign_check == true) {
println "hello - param yes"
}
}
}
}
}
}
}
以上给出了预期的结果。
我在 jenkins groovy 脚本的“if”条件下添加了这个
if ((sign_check == true) && ((name == "abc") || (name == "def"))){
println "hello - yes"
}
甚至尝试使用下面的方法
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
当脚本被“sign_check=false”和“name=”def触发时,这个if条件应该不会触发“hello - yes”,但在我的例子中,它仍然是碰巧触发“你好 - 是的”。
请告知 if 条件到底有什么问题。
问题可能是 sign_check
变量未分配为布尔值。
以下是一些测试:
测试 1:给出正确的结果。
它不会打印“hello -yes”
script{
def sign_check = false
def name ="abc"
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
}
测试 1:给出正确的结果。
它不会打印“hello -yes”
script{
def sign_check = false
def name ="abc"
if (name == "abc" || name == "def"){
if (sign_check == true) {
println "hello - yes"
}
}
}
如果您使用参数化选项,那么您应该 select 变量 sign_check
作为布尔值而不是字符串:
pipeline {
agent any
parameters
{
booleanParam(defaultValue: true, description: '', name: 'sign_check')
string(name: 'name', defaultValue: "abc", description: 'What is name?')
}
stages {
stage('Hello') {
steps {
script{
if (params.name == "abc" || params.name == "def"){
if (params.sign_check == true) {
println "hello - param yes"
}
}
}
}
}
}
}
以上给出了预期的结果。