我在Jenkins中运行了一个管道作业,我想知道它运行所在的节点的名称。有没有办法从作业的Groovy脚本中获取节点名称?
我已经尝试了下面的代码:
print currentBuild.getBuiltOn().getNodeName()
错误为:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified method org.jenkinsci.plugins.workflow.job.WorkflowRun getBuiltOn
我也试过这个:
def build = currentBuild.build()
print build.getExecutor().getOwner().getNode().getNodeName()
但结果是“”。
2条答案
按热度按时间3ks5zfa01#
有一个环境变量“NODE_NAME”具有此属性。
您可以按如下方式访问它:
编辑管道作业时,可以通过转至“管道语法”帮助链接(页面左侧)找到所有可用的环境变量,然后查找“全局变量”部分,并单击进入“全局变量参考”。其中有一个“env”部分列出了可用的环境变量。
8ftvxx2r2#
虽然没有文档说明,但确实可以从管道的CpsThread类中获取Node和Executor对象,当然,它们只在node { }块中定义: