当前位置: 首页 > 面试题库 >

如何使用Groovy在Jenkins中获取当前构建的节点名称

何兴学
2023-03-14
问题内容

我在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()

但结果是“”。


问题答案:

有一个环境变量“ NODE_NAME”具有此功能。

您可以像这样访问它:

echo "NODE_NAME = ${env.NODE_NAME}"

在编辑管道作业时,可以转到“管道语法”帮助链接(页面左侧),然后找到“全局变量”部分,然后单击“全局变量参考”,以找到所有可用的环境变量。 。“
env”部分列出了可用的环境变量。



 类似资料:
  • 每个人 使用SoapUI 5.2.1和Groovy TestCase有2个测试步骤: SOAP请求“创建” Groovy脚本 请求内: 内部脚本: 此脚本返回: 我应该在脚本中更改什么,以便脚本可以返回我:

  • 问题内容: 我需要在Jenkins中获得当前的登录用户,我使用的是Groovy参数,但我不知道该如何获取, 谢谢, 问题答案: 您应该可以致电: 从groovy脚本中获取当前用户:-)

  • 我使用了下线来识别html文件。但它返回了异常。 观察到异常: ite.call没有这样的属性:类的工作空间:ite.java:194绑定org.codehaus.groovy.runtime.callsite.Bite.call变量(Bite.java:230)在cript1.runSandboxIcript1.groovyGetProperty(SandboxInterceptor.java:

  • 问题内容: 有没有办法在运行时获取当前包的名称? …且结果应为“主要” 现在我正在使用常量,例如: 但我很好奇您能否避免这种情况 问题答案: 没有提供所需功能的运行时或反射方法或函数。 我能找到的最接近的东西是: 这将输出: 您还可以读取文件的第一行并删除“ package”子字符串。(不确定这是最好的主意)

  • 问题内容: 我必须根据当前URL动态构建一个URL。使用标记是最简单的方法,但是我需要当前的URL名称来动态生成新的URL。 如何获取链接到指向当前视图的urlconf的url名称? 编辑:我知道我可以手动使用url,但是我宁愿避免使用它,因为它是讲座的一部分,我只想演示一种构建url的方法。 学生知道如何使用。他们知道当他们必须根据当前URL生成更完整的URL时遇到问题。最简单的方法是再次使用,