【问题标题】:Groovy to call a Jenkins pipeline on another Jenkins instanceGroovy 在另一个 Jenkins 实例上调用 Jenkins 管道
【发布时间】:2021-05-27 11:12:26
【问题描述】:

在一个实例中有一个 Jenkins 管道,比如说 A。我想在 Jenkins 实例 A 的一个阶段从 Jenkins 实例 B 调用另一个管道。我该如何为此编写一个 groovy? 我查看了this 的答案,但它对我没有用。

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline


    【解决方案1】:

    你可以使用jenkins插件Parameterized Remote Trigger

    使用方便。

    你只需要在manage jenkins中配置jenkins instance B。它在后端使用 jenkins api。

    对于 groovy 帮助,您可以查看 http://${JENKINS_URL}/pipeline-syntax

    【讨论】:

      【解决方案2】:

      选项 1: 您可以使用 HttpBuilder 来触发远程构建。你仍然需要Parameterized Build 插件。

      import groovyx.net.http.HTTPBuilder
      import static groovyx.net.http.ContentType.URLENC
       
      def http = new HTTPBuilder( 'http://server/job/myjob/buildWithParameters' )
      def postBody = [parameter: value] // will be url-encoded
       
      http.post( path: '/', body: postBody,
                 requestContentType: URLENC ) { resp ->
       
        println "POST Success: ${resp.statusLine}"
        assert resp.statusLine.statusCode == 201
      }
      

      选项 2: 或使用此处描述的 cURL:https://*.com/a/42947382/519852

      无论如何,在这两种情况下,它只会触发构建,而不是等待它完成也不会得到它的结果。

      【讨论】:

        最近更新 更多