jenkins - Jenkins 用 groovy 方法共享常用环境变量
问题描述
我正在构建一个声明性 JenkinsFile,我有一些公共变量希望在一些 Jenkins 项目和工作中共享。所以我创建了一个 jenkins 共享库,但由于某种原因,我无法让我的 Jenkins 文件从 common groovy 中读取公共环境变量。
pipeline {
environment {
commonEnv()
Email_Notification_Enabled="true"
Slack_Notification_Enabled="false"
}
}
在我的常规中,我有:
def call() {
a = "abc"
b = "abc"
}
它会引发环境中不允许 commonEnv() 的错误。实现这种行为的可能方法是什么。
解决方案
由于您需要在所有 Jenkins 项目和作业之间共享环境变量,因此您应该在 Jenkins实例级别而不是在 Jenkins项目或作业级别设置它们。因此,我将在Manage Jenkins > Configure System > Global properties > Environment Variables
中进行,而不是在 Jenkinsfile 中进行(它将在 Jenkins 工作级别进行):
然后可以从Jenkins 全局变量 env的管道脚本中读取环境变量:
echo "This is my Jenkins global environment variable ${env.MY_ENV_VAR_NAME}"