我正在尝试在一个文件夹下创建多个管道作业。在此文件夹下,我创建了一些文件夹属性。我很难在作业的多个阶段中使用此文件夹属性。
使用的插件 : https://wiki.jenkins.io/display/JENKINS/Folder+Properties+Plugin
def region
pipeline {
agent any
stages {
stage('Assign values to global properties') {
steps {
withFolderProperties{
region = "${env.appRegion}"
}
}
}
stage('Print') {
steps {
print(region)
}
}
}
}
错误:
Expected a step @ line 8, column 21.
region = "${env.appRegion}"
提前致谢
region = "${env.appRegion}"
不是步骤或指令的管道保留名称。 这是时髦的声明。你应该把它们放在script
步骤里。 如果你使用脚本化管道,你可以在任何地方放置任何类型的时髦语句。但是对于声明式管道,任何时髦的语句都应该包装script
步骤中。
steps {
script {
withFolderProperties{
region = "${env.appRegion}"
}
}
}
steps {
withFolderProperties{
script {
region = "${env.appRegion}"
}
}
}
我不确定上面的哪个代码块是有效的,但你可以试一试。
#!groovy
def CI_NAMESPACE = ""
withFolderProperties{
CI_NAMESPACE = "${env.CI_NAMESPACE}"
}
println "CI_NAMESPACE = ${CI_NAMESPACE}"
if (CI_NAMESPACE == '' || CI_NAMESPACE == null || CI_NAMESPACE == 'null') {
currentBuild.result = 'ABORTED'
error('Not defined CI_NAMESPACE in Folder properies plugin!')
}
pipeline {
environment {
CI_NAMESPACE = "${CI_NAMESPACE}"
}
stages {
stage('Test') {
steps {
echo "CI_NAMESPACE: ${env.CI_NAMESPACE}"
}
}
}
}