在詹金斯作业中将变量值从一个构建步骤传递到另一个构建步骤

在詹金斯作业中将变量值从一个构建步骤传递到另一个构建步骤

我想将变量值从一个构建步骤(从“执行 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} .'"
}

相关内容