我正在尝试生成一些环境。 jenkins管道项目中的变量,并希望将它们注入到我的构建中,但到目前为止我无法这样做,在下面提到的片段中,我已经创建了一个env变量,即 build = 20160107 随机构建号,现在我执行一个批量脚本名称CalculateTempEnvVariablesForBuild.bat,它生成TempEnvVariables.properties 文件。此属性文件包含year,Week_number,week_day的更新值 现在我需要根据 $ {year} 0 $ {Week_number} $ {week_day}
更新我的构建变量pipeline {
agent { label 'Build_Machine_Windows_Server' }
stages {
stage('Build') {
steps {
dir ('E:\\\\Jenkins'){
bat 'call E:\\Jenkins\\CalculateTempEnvVariablesForBuild.bat'
}
load "E:\\Jenkins\\TempEnvVariables.properties"
withEnv(['build=${year}0${Week_number}${week_day}']) {
echo "${build}"
}
echo "${year}"
echo "${week_day}"
echo "${Week_number}"
}
}
}
}
当我回复$ {build}时,它没有给我更新值,而是给了我简单的字符串 - > $ {year} 0 $ {Week_number} $ {week_day} 我需要的是 20173203 当我单独回复year,week_day和Week_number时,我得到正确的值,如 17,32,03
我想我没有正确设置/注入变量(可能是语法错误)
答案 0 :(得分:1)
管道代码使用单引号。根据{{3}},这意味着插值不是由groovy完成的,而是由底层shell完成的:
(注意,这里我们在Groovy中使用单引号,所以变量 扩展是由Bourne shell完成的,而不是Jenkins。)
尝试使用双引号:
withEnv(["build=${BUILD_NUMBER}"]) {
echo env.build
}