我已经分配了一个jenkins全局环境变量,是否可以从sh”””“”脚本内部覆盖它?
pipeline {
environment {
MYIMAGE=""
}
stages {
stage('CREATE IMAGE'){
steps {
script {
if ((BRANCH_NAME == "DEV" )) {
script {
sh """
if [[ $BRANCH_NAME == "dev" ]]; then
env.MYIMAGE="image1";
elif [[ $BRANCH_NAME == "TESTING" ]]; then
env.MYIMAGE="image2";
else
env.MYIMAGE="image3";
fi
echo ${env.MYIMAGE}
"""
}
}
}
}
}
}
}
所以我想从脚本内部有条件地设置环境变量,这可能吗?
1条答案
按热度按时间5jvtdoz21#
我想没有办法照你说的去做。
首先,Jenkins管道全局
env
允许您插入新环境,但覆盖现有环境。其次,
sh
步骤不能在Bash中计算Groovy表达式。如果您接受使用通用的Groovy变量,但环境中您可以执行以下操作: