此时我在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本身点击"Build with Parameters"时,应该创建下拉项目,例如 before any build is started .
每次我想要更改这些值时,我都不想更改shell脚本代码和下拉Groovy脚本 . 此外,我想在不同的构建作业中使用相同的值,这意味着每次需要更改变量时我都需要更改它们 .
创建下拉菜单的动态选择参数仅包含以下Groovy表达式以生成选项:
def list = ["Option 1", "Option 2", "Option 3", "Option 4"]
我想将GLOBAL_VAR的值添加到此列表中 .
有谁知道如何在Groovy中访问Jenkins环境变量?或者有没有人知道一种不同的方法来管理我想在动态选择参数(下拉菜单)和构建时执行的shell脚本中使用的变量?
4 回答
在“执行Groovy脚本”中,您可以通过以下方式访问全局(和构建)变量:
以下是一些工作代码的示例:
我的解决方案的来源:
https://gist.github.com/johnyzed/2af71090419af2b20c5a
http://pghalliday.com/jenkins/groovy/sonar/chef/configuration/management/2014/09/21/some-useful-jenkins-groovy-scripts.html
请注意删除我以前的答案的“硬核”主持人:在找到正确的解决方案之前,我花了几个小时在互联网上搜索,你不应该删除帖子而不知道它真正在谈论什么 . 我发现这种行为相当令人沮丧:(
我可以提供一个我们使用的Jenkins工作的例子 . 作业是 parameterized ,并为用户提供了设置许多值的功能,其中一个值是"InstallVersion"(默认值为-1) . 另外,我们设置了一个名为"JENKINS_TRUNK_LABEL"的环境变量 . 我赢了't go into specifics about this job, but, here' s我们如何在Groovy脚本中引用"JENKINS_TRUNK_LABEL" .
您可以使用:
解决方案被发现here