我的项目有许多其他项目的公共变量,所以我使用 Jenkins 共享库并创建了一个vars/my_vars.groovy
文件,在其中定义了我的变量并返回它们的 Map:
class my_vars {
static Map varMap = [:]
static def loadVars (Map config) {
varMap.var1 = "val1"
varMap.var2 = "val2"
// Many more variables ...
return varMap
}
}
我在我的 Jenkinsfile 中加载共享库,并在环境项目符号中调用该函数,因为我希望这些变量作为 environment variables 。
詹金斯文件:
pipeline {
environment {
// initialize common vars
common_vars = my_vars.loadVars()
} // environment
stages {
stage('Some Stage') {
// ...
}
}
post {
always {
script {
// Print environment variables
sh "env"
} // script
} // always
} // post
} // pipeline
问题是环境项目符号KEY=VALUE
成对,因此我common_vars
的地图像字符串值一样加载(我可以在 上看到sh "env"
)。
...
vars=[var1:val1, var2:val2]
...
将这些值声明为环境变量的正确方法是什么?我的目标是:
...
var1=val1
var2=val2
...