首页 > 解决方案 > 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() 的错误。实现这种行为的可能方法是什么。

标签: jenkinsgroovy

解决方案


由于您需要在所有 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}"

推荐阅读