Jenkins pipeline Jenkins管道引用环境变量部分中的环境变量
我在Jenkins管道中创建了两个环境变量Jenkins pipeline Jenkins管道引用环境变量部分中的环境变量,jenkins-pipeline,Jenkins Pipeline,我在Jenkins管道中创建了两个环境变量 environment{ base_ver=sh(script: 'grep FROM ${WORKSPACE}/Dockerfile | awk -F : \'{print $2}\'', returnStdout: true).trim() git_hash=sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() } 现在我想在同一节中使用上述两个变量创建另一个env
environment{
base_ver=sh(script: 'grep FROM ${WORKSPACE}/Dockerfile | awk -F : \'{print $2}\'', returnStdout: true).trim()
git_hash=sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
}
现在我想在同一节中使用上述两个变量创建另一个env变量,我们会这样做吗
Image='$base\u ver'-'$git\u hash'
我尝试了多种方法,但似乎都不起作用,我们可以在env variable部分中访问env变量吗?
这是我试过的
environment{
base_ver=sh(script: 'grep FROM ${WORKSPACE}/Dockerfile | awk -F : \'{print $2}\'', returnStdout: true).trim()
git_hash=sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
Image=sh(script: 'DockerImage=${base_ver}-${git_hash}', returnStdout: true).trim()
}
请让我知道这是否是可行的或正确的方法。
谢谢。您当前要做的是启动shell,在其中定义变量并退出。没有打印任何内容,因此返回的标准输出为空 连接可以由groovy完成。没有必要为此推出shell。
这是:
Image=base\u ver+'-'+git\u hash
如果出于任何原因需要在shell中执行此操作,只需添加echo(还要注意双引号,以便groovy在调用shell之前替换变量):
Image=sh(脚本:“echo-n'${base\u ver}-${git\u hash}',returnStdout:true)。trim()
当前要做的是启动shell,在其中定义变量并退出。没有打印任何内容,因此返回的标准输出为空
连接可以由groovy完成。没有必要为此推出shell。这是:
Image=base\u ver+'-'+git\u hash
如果出于任何原因需要在shell中执行此操作,只需添加echo(还要注意双引号,以便groovy在调用shell之前替换变量):
Image=sh(脚本:“echo-n'${base\u ver}-${git\u hash}',returnStdout:true)。谢谢你们的建议
sh """
Image=${PROD_ECR_REPO}:${env.base_ver}-${env.git_hash}
echo \$Image
"""
我试过这种方法,它对我有效。谢谢你们的建议
sh """
Image=${PROD_ECR_REPO}:${env.base_ver}-${env.git_hash}
echo \$Image
"""
这些应该是正常变量,而不是环境变量。这会有帮助的。这些应该是正常变量,而不是环境变量。那会有帮助的。