如何跨管道阶段访问文件夹变量?
how to access folder variables across pipeline stages?
我正在尝试在一个文件夹下创建多个管道作业。在此文件夹下,我创建了一些文件夹属性。我很难在作业的多个阶段使用此文件夹属性。
使用的插件: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}"
不是步骤或指令的管道保留名称。这是 groovy 声明。您应该将它们放在 script
步骤中。如果您使用 Scripted Pipeline,您可以在任何地方放置任何类型的 groovy 语句。但是对于 声明式管道 任何 groovy 语句都应该包含在 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}"
}
}
}
}
我正在尝试在一个文件夹下创建多个管道作业。在此文件夹下,我创建了一些文件夹属性。我很难在作业的多个阶段使用此文件夹属性。
使用的插件: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}"
不是步骤或指令的管道保留名称。这是 groovy 声明。您应该将它们放在 script
步骤中。如果您使用 Scripted Pipeline,您可以在任何地方放置任何类型的 groovy 语句。但是对于 声明式管道 任何 groovy 语句都应该包含在 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}"
}
}
}
}