gpt4 book ai didi

groovy - 在 Groovy 中访问 Jenkins 全局属性

转载 作者:行者123 更新时间:2023-12-01 00:54:16 31 4
gpt4 key购买 nike

此时,我在 Manage Jenkins -> Configure System -> Global Properties 下定义了一个名为 GLOBAL_VAR 的环境变量,其值为“test”。正在构建项目时,我有一个 shell 脚本,其中包含

echo "The value of the global variable is ${GLOBAL_VAR}"

如果执行,结果是我所期望的:
The value of the global variable is test

现在我的问题是我想在 Groovy 脚本中访问这个变量,该脚本用于在 Jenkins 的参数化构建属性中创建下拉菜单。此下拉菜单包含在执行构建时执行的 shell 脚本中也使用的值。因此,当有人单击 Jenkins 本身中的“使用参数构建”时,应创建下拉项,例如 在任何构建开始之前 .

我不想每次更改这些值时都更改 shell 脚本代码和下拉 Groovy 脚本。此外,我想在不同的构建作业中使用相同的值,这意味着每次需要更改变量时都需要更改它们。

创建下拉菜单的动态选择参数仅包含以下用于生成选择的 Groovy 表达式:
 def list = ["Option 1", "Option 2", "Option 3", "Option 4"]

我想将 GLOBAL_VAR 的值添加到此列表中。

有谁知道如何在 Groovy 中访问 Jenkins 环境变量?或者有没有人知道一种不同的方法来管理我想在动态选择参数(下拉菜单)和构建时执行的 shell 脚本中使用的变量?

最佳答案

这是一些工作代码的示例:

import jenkins.model.*
nodes = Jenkins.instance.globalNodeProperties
nodes.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class)
envVars = nodes[0].envVars
envVars['MY_GLOBAL_PROPERTY']

我的解决方案来源:

https://gist.github.com/johnyzed/2af71090419af2b20c5a

http://pghalliday.com/jenkins/groovy/sonar/chef/configuration/management/2014/09/21/some-useful-jenkins-groovy-scripts.html

请注意删除我之前回答的“硬核”版主:在找到正确的解决方案之前,我已经在互联网上搜索了好几个小时,您不应该在不知道它真正在谈论什么的情况下删除帖子。我发现这种行为相当令人沮丧:(

关于groovy - 在 Groovy 中访问 Jenkins 全局属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29242062/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com