jenkins 意外地处理情况

问题描述 投票:0回答:1

我在 jenkins 脚本中有一些条件命令,但它没有给出我预期的输出,所以我将它们分解如下:

echo "PY38_RELEASE: ${env.PY38_RELEASE}"
echo "TAG_NAME: ${env.TAG_NAME}"
echo "TAG_NAME: ${env.TAG_NAME != null}"
echo "condition: ${env.PY38_RELEASE || env.TAG_NAME}"
echo "condition: ${env.PY38_RELEASE || env.TAG_NAME != null}"

然后我观察输出,我得到了这个:

[2024-03-14T02:18:14.115Z] PY38_RELEASE: false
[2024-03-14T02:18:14.125Z] TAG_NAME: null
[2024-03-14T02:18:14.135Z] TAG_NAME: false
[2024-03-14T02:18:14.145Z] condition: true
[2024-03-14T02:18:14.155Z] condition: true

env.PY38_RELEASE
为假且
env.TAG_NAME != null
为假时,我不明白,但是他们的
OR
为真。我哪里弄错了?

jenkins
1个回答
0
投票

我相信发生的事情是

env.PY38_RELEASE
的值是 string
'false'
,而不是布尔值
false

我建议在你的脚本中写下:

def real_py38_release = env.PY38_RELEASE && (env.PY38_RELEASE != 'false')

然后根据您的情况使用

real_py38_release
之前使用
env.PY38_RELEASE
的位置。

© www.soinside.com 2019 - 2024. All rights reserved.