【发布时间】:2019-10-21 16:00:12
【问题描述】:
我为此问题进行了很多搜索,但在任何地方都找不到有效的解决方案。有人可以帮我吗?我想通过 jenkins 脚本控制台获取已经存在的环境变量值。
【问题讨论】:
-
可以打印所有环境变量,使用-sh 'printenv'
标签: jenkins groovy environment-variables
我为此问题进行了很多搜索,但在任何地方都找不到有效的解决方案。有人可以帮我吗?我想通过 jenkins 脚本控制台获取已经存在的环境变量值。
【问题讨论】:
标签: jenkins groovy environment-variables
根据this answer,为了从 Jenkins 脚本控制台访问 env vars,请执行以下操作:
import jenkins.model.*;
import hudson.slaves.EnvironmentVariablesNodeProperty;
import hudson.EnvVars;
jenkins = Jenkins.instance;
EnvironmentVariablesNodeProperty prop = jenkins.getGlobalNodeProperties().get(EnvironmentVariablesNodeProperty.class)
EnvVars env = prop.getEnvVars()
def myVariable = env['MY_VAR']
http://<JENKINS_URL>/env-vars.html 中列出的环境变量可用于每个构建。为了在 Jenkins 脚本控制台中访问这些变量,您需要首先定义构建:
build = Jenkins.instance.getItemByFullName('JOB_NAME').getBuildByNumber(BUILD_NUMBER)
envvars = build.getEnvironment()
envvars.each{envvar ->
println envvar
}
【讨论】:
JOB_NAME 替换为您的工作名称,将BUILD_NUMBER 替换为您要访问其环境变量的构建编号。
你需要区分:
def myVar = build.getBuildVariables().get('myVar')
System.getenv('MY_VARIABLE')
如果你看到
groovy.lang.MissingPropertyException: No such property: manager for class: Script1
检查this answer,并首先定义build:
import hudson.model.*
def build = Thread.currentThread().executable
def buildNumber = build.number
【讨论】: