我想将变量值从一个构建步骤(从“执行 shell”到“通过 SSH 发送文件或执行命令”)传递到我的脚本中执行 shell* 是:
if [ "$var" == "1"]; then
package="newpackage"
fi
if [ "$var" == "2"]; then
package="oldpackage"
fi
Given_order=${package}
通过 SSH 发送文件或执行命令
echo "$Given_order"
但值没有从执行 shell 构建步骤传递到其他步骤。请提出建议,谢谢
答案1
我已经在这里回答了这个问题:https://serverfault.com/a/884798/213070基本上,在 Pipeline 代码中声明一个超出构建阶段范围的变量:
def jobBaseName
stage ('Construct Img name') {
jobBaseName = sh(
script: "echo ${BUILD_TAG} | awk '{print tolower($0)}' | sed 's/jenkins-//'",
returnStdout: true,
)
}
stage ('Build Target Container') {
sh "ssh -i ~/ssh_keys/key.key user@somehost 'cd /dockerdata/build/${BUILD_TAG} && docker build -t localrepo/${jobBaseName}:${BUILD_NUMBER} .'"
}