如何在Jenkins上通过构建步骤触发构建的URL?

sor*_*rin 4 groovy jenkins-pipeline

在Jenkins中使用基于Groovy的管道时,您可以在build阶段触发子作业。

上面的文档仍然没有说明您将获得哪种返回对象以及它具有什么属性。

到目前为止,我唯一发现的就是可以build.getResult()用来获取触发作业的结果。

不过,我确实想获取此工作的URL。

Dan*_*eck 6

从文档中的build步骤开始/pipeline-syntaxwaitFormCompletion参数,原始格式会更好):

您可能会要求此Pipeline构建等待下游构建的完成。在这种情况下,步骤的返回值是一个对象,您可以在该对象上获得以下只读属性:因此,您可以检查其.result等。

  • 数字内部
    版本号(整数)
  • 结果
    通常为SUCCESS,UNSTABLE或FAILURE(对于正在进行的构建,可以为null)
  • currentResult
    通常为SUCCESS,UNSTABLE或FAILURE。永远不会为空。
  • resultIsBetterOrEqualTo(String)
    将当前构建结果与提供的结果字符串(SUCCESS,UNSTABLE或FAILURE)进行比较,如果当前构建结果好于或等于提供的结果,则返回true。
  • resultIsWorseOrEqualTo(String)
    将当前构建结果与提供的结果字符串(SUCCESS,UNSTABLE或FAILURE)进行比较,如果当前构建结果差于或等于提供的结果,则返回true。
  • displayName
    通常为#123,但有时设置为例如SCM提交标识符
  • 描述
    有关构建的其他信息
  • id
    通常为数字
  • timeInMillis
    自计划构建的纪元以来的时间

  • 从构建开始运行的时期开始的时间startTimeInMillis
  • 持续
    时间(以毫秒为单位)
  • durationString
    易于理解的构建持续时间表示
  • previousBuild
    另一个类似的对象,或者为null
  • nextBuild
    同样

  • 构建索引页面的absoluteUrl URL

  • 非管道下游构建的buildVariables 提供对已定义的构建变量的映射的访问;对于管道下游构建,在env上全局设置的任何变量
  • change设置
    来自不同SCM检出的变更集列表;每个都有一种,并且是一个提交列表;每个提交都有一个commitId,时间戳,msg,author和受影响的文件,每个文件都有一个editType和路径。该值通常不会被序列化,因此您只能在标有@NonCPS的方法中访问它
  • raw构建
    一个hudson.model。使用其他API运行,仅适用于沙箱外部的受信任库或管理员批准的脚本;该值将不可序列化,因此您只能在标记为@NonCPS的方法内访问它

如果不等待,只要可以将下游构建添加到队列中(甚至不会启动),此步骤就会成功。在那种情况下,当前没有返回值。

作业URL不存在(毕竟它是一个构建),但是absoluteUrl会提供构建URL。

rawBuild应该允许您访问rawbuild.parent.url(未试用),但是通常不安全,不建议离开沙盒。

  • 谢谢!现在测试一下,实际上我发现自己返回的对象似乎是一个 WorkflowRun 实例。仍然来自 https://jenkins.io/doc/pipeline/steps/pipeline-build-step/ 的官方文档未能提供有关返回对象的信息,更糟糕的是几乎无法读取参数。您可以找到列出了 8 次的“描述”参数,但您不知道它适用于什么。文档的 HTML 格式很糟糕,大时间。 (2认同)