当前位置: 首页 > 知识库问答 >
问题:

Groovy Init中的Jenkins环境变量

燕博文
2023-03-14

我正在构建Jenkins的Docker映像,并已将ENV变量传递给< code>jenkins.sh初始化文件:

Dockerfile文件

...

COPY ./jenkins.sh /usr/local/bin/jenkins.sh 

詹金斯. sh

echo ENV: "$ENV"
echo CLUSTER: "$CLUSTER"
echo REGION: "$REGION"

当我运行图像时,这些值可以完美地打印出来,但是我想在Jenkins初始化期间在Groovy脚本中使用它们。

以下在启动期间引发错误:

import java.util.Arrays
import java.util.logging.Logger
Logger logger = Logger.getLogger("ecs-cluster")

logger.info("Loading Archeus-Midwayer...")
import jenkins.model.*
instance = Jenkins.getInstance()

def env = System.getenv()
println(env['CLUSTER'])

错误

警告:无法运行脚本文件:/var/jenkins_home/init.groovy.d/init_ecs。groovy groovy.lang.MissingPropertyException:没有这样的属性:在org.codehaus.goovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)中,在org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetropertySite.java:52)中,类的CLUSTER位于org.codehous.gooovy.runter.callsite

如何捕获jenkins.sh中的环境变量

谢谢!

共有1个答案

轩辕嘉平
2023-03-14

使用以下命令检查环境变量:

def env = System.getenv()
env.each { 
  println it
}

导出< code>jenkins.sh中的环境变量。

另请参见在Jenkins构建步骤中从groovy脚本访问构建环境变量(Windows)。

 类似资料:
  • 问题内容: Jenkins(管理jenkins->系统信息)下的环境变量从何而来? 我检查了/etc/init.d/tomcat5,/ usr / bin / dtomcat5,/ usr / bin / tomcat5,/ etc / sysconfig / tomcat5和/ etc / profile,但在那里没有看到任何此类变量,特别是与Oracle相关的变量(Base,Home,Ld_l

  • 问题内容: 是否有任何环境变量可用于获取Jenkins管道标题? 我知道我们可以使用它来获得自由职业的头衔,但是有什么可以用来获取管道名称的东西吗? 问题答案: 您可以使用相同的名称(例如或)从groovy访问相同的环境变量。 从文档中: 可以从Groovy代码中以env.VARNAME或仅以VARNAME的形式访问环境变量。您也可以写入这些属性(仅使用env。前缀): 这些定义也将在构建期间或构

  • 问题内容: 我正在从已设置用户权限的用户那里运行Jenkins ,当我进入Jenkins Web界面时,在“ 系统属性” 窗口()中看到了一个不同的。 我已经使用Jenkins网站上的本地rpm在Centos上安装了Jenkins。我正在使用安装随附的启动脚本 谁能告诉我为什么会这样? 问题答案: 迈克尔 两件事情: 当詹金斯连接到计算机时,它将连接到外壳,而不是外壳(至少这是我注意到的-我可能错

  • 问题内容: 我正在通过Docker映像运行Jenkins。 我希望我的Jenkins安装程序提供一些预先配置的环境变量。 有什么方法可以复制一些环境变量,以便在启动詹金斯时,这些变量应该与这些预先配置的环境变量一起提供? TIA。 问题答案: 可用环境变量的列表位于此处:https : //hub.docker.com/_/jenkins/ 更新资料 如果要添加自己的环境变量,则需要构建自己的je

  • 问题内容: 我正在将Jenkins与Testswarm和此插件一起使用(派生资源)。 我想为Testswarm获取一个“工作名称”,其中包含詹金斯的工作名称,内部版本号和svn修订版号。 将JOB_NAME放在配置字段中无济于事,该变量不会被其值替换。 因此,我修改了插件源代码以获取Jenkins环境变量,但我得到的只是“空”变量。 这是罪魁祸首代码。(在第205行的src / main / ja

  • 问题内容: 在詹金斯(Jenkins)的工作中,我正在执行预构建中的一些操作,例如执行Shell脚本。通过使用Jenkins插件“ EnvInject”,我想将环境变量注入到我的Maven构建(单元测试)中,以便可以在Java单元测试中使用这些变量。在shell脚本中,即时消息执行类似以下操作: 在构建Jenkins时,输出以下内容: 但是“ ip”变量在我的Java代码(单元测试)中不可用。当我