我正在尝试将构建后步骤添加到我的jenkinsfile中,以将标签应用于构建。 Jenkins变量可以很好地解析,但是我在文件中全局定义的环境变量无法解析。这是相关的位:
pipeline {
environment {
VERSION_MAJOR = '1'
VERSION_MINOR = '0'
VERSION_PATCH = '0'
}
stages {
stage('Build') {
steps {
echo('Testing p4Tag')
}
}
}
post {
success {
build job: 'Copy-Installers',
parameters: [
//
string(name: 'MASTER_VERSION_MAJOR', value: '${VERSION_MAJOR}'),
string(name: 'MASTER_VERSION_MINOR', value: '${VERSION_MINOR}'),
string(name: 'MASTER_VERSION_FEATURE', value: '${VERSION_PATCH}'),
string(name: 'MASTER_BUILD_NUMBER', value: '${BUILD_NUMBER}'),
string(name: 'COMPONENT_NAME', value: 'Console')
}
}
}
下游构建失败。查看日志,似乎未传入本地环境变量:
The Build Number name is: ${VERSION_MAJOR}
The Build Number name is: ${VERSION_MINOR}
The Build Number name is: ${VERSION_PATCH}
The Build Number name is: 924
The Build environment name is: Console
更新
我也尝试了以下变体:
value: '${env.VERSION_MAJOR}'
-与上述失败类似value: '$VERSION_MAJOR'
-与上述失败类似value: $VERSION_MAJOR
-失败,并显示“无此类属性”错误更新2
对于它们的价值,可以从stage
部分引用这些变量 。例如,这可以按预期工作:
stage('build') {
sh('./Build/build-package.sh $VERSION_MAJOR $VERSION_MINOR $VERSION_PATCH $BUILD_NUMBER')
}
答案 0 :(得分:0)
替换以下内容
string(name: 'MASTER_VERSION_MAJOR', value: '${VERSION_MAJOR}'),
与
string(name: 'MASTER_VERSION_MAJOR', value: '${env.VERSION_MAJOR}'),
对其他变量也是如此。
我希望它对您有用。