Jenkins:hudson.AbortException:TEST 的实例计划 CPU 值无效
Jenkins: hudson.AbortException: Invalid instance plan CPU value for TEST
詹金斯 2.277.2
我对 groovy 和 groovy 运算符没有那么丰富的经验,但是
不确定逻辑有什么问题...
出现此错误:
实例计划是 dashDBStandard 内核是 4,RAM 是 16
...
hudson.AbortException:TEST
的实例计划 CPU 值无效
'''
print "Instance plan is ${db2instance_plan} Cores are ${cores} and RAM is ${ram}"
if ((db2instance_plan == 'dashDBStandard') && (cores > '16')) {
error "Invalid instance plan CPU value for TEST"
}
if ((db2instance_plan == 'dashDBStandard') && (ram > '64')) {
error "Invalid instance plan RAM value for TEST"
}
if ((db2instance_plan == 'dashDBNebula') && (cores < '4' )) {
error "Invalid instance plan CPU value for PROD"
}
if ((db2instance_plan == 'dashDBNebula') && (ram < '16' )) {
error "Invlaid instance plan RAM for PROD"
}
'''
Jenkins 管道中的 error 关键字只是抛出带有指定消息的 hudson.AbortException
(停止执行)。
但看起来您正在将 cores
和 ram
参数视为字符串,因此 >
运算符将比较字符串而不是您可能想要的数字。
如果您输入的参数是整数,只需使用以下内容:
if ((db2instance_plan == 'dashDBStandard') && (cores > 16)) {
否则,如果输入是字符串,您可以将其转换为数字:
if ((db2instance_plan == 'dashDBStandard') && (cores.toInteger() > 16)) {
有关将字符串转换为数字的其他方法,请参阅 This Question
詹金斯 2.277.2 我对 groovy 和 groovy 运算符没有那么丰富的经验,但是 不确定逻辑有什么问题...
出现此错误:
实例计划是 dashDBStandard 内核是 4,RAM 是 16
...
hudson.AbortException:TEST
的实例计划 CPU 值无效'''
print "Instance plan is ${db2instance_plan} Cores are ${cores} and RAM is ${ram}"
if ((db2instance_plan == 'dashDBStandard') && (cores > '16')) {
error "Invalid instance plan CPU value for TEST"
}
if ((db2instance_plan == 'dashDBStandard') && (ram > '64')) {
error "Invalid instance plan RAM value for TEST"
}
if ((db2instance_plan == 'dashDBNebula') && (cores < '4' )) {
error "Invalid instance plan CPU value for PROD"
}
if ((db2instance_plan == 'dashDBNebula') && (ram < '16' )) {
error "Invlaid instance plan RAM for PROD"
}
'''
Jenkins 管道中的 error 关键字只是抛出带有指定消息的 hudson.AbortException
(停止执行)。
但看起来您正在将 cores
和 ram
参数视为字符串,因此 >
运算符将比较字符串而不是您可能想要的数字。
如果您输入的参数是整数,只需使用以下内容:
if ((db2instance_plan == 'dashDBStandard') && (cores > 16)) {
否则,如果输入是字符串,您可以将其转换为数字:
if ((db2instance_plan == 'dashDBStandard') && (cores.toInteger() > 16)) {
有关将字符串转换为数字的其他方法,请参阅 This Question