【问题标题】:How do I check for build status, running Jenkins jobs from a BitBucket pipeline?如何检查构建状态,从 BitBucket 管道运行 Jenkins 作业?
【发布时间】:2020-03-30 20:14:19
【问题描述】:

我们正在使用 BitBucket 来托管我们的 Git 存储库。

我们在本地托管的 Jenkins 服务器中定义了构建作业。

我们想知道是否可以在拉取请求批准后等使用 BitBucket 管道在 Jenkins 中触发构建。

在 Jenkins 中通过其 REST API 触发作业相当简单。

1: curl --request POST --user $username:$api_token --head http://jenkins.mydomain/job/myjob/build

这将返回一个位置响应标头。通过对其进行 GET 操作,我们可以获得有关排队项目的信息:

2: curl --user $username:$api_token http://jenkins.mydomain/queue/item/<item#>/api/json 

这将返回描述排队项目的 JSON,指示项目是否被阻止以及原因。如果不是,它包含构建的 URL。这样,我们就可以检查构建本身的状态:

3: curl -–user $username:$api_token http://jenkins.mydomain/job/myjob/<build#>/api/json

这将返回更多的json,指示作业当前是否正在构建,如果已完成,则构建是否成功。

现在 BitBucket 管道步骤在 Docker 容器中运行,并且必须在 Linux 上运行。我们的 Jenkins 构建作业在多个平台上运行,并非所有平台都是 Linux。但 BitBucket 不应该在意。可以在 Linux 中进行必要的 REST API 调用,就像我在上面的示例中一样。

但是我们如何编写脚本呢?

我们是否创建一个运行 shell 脚本的单个步骤,该脚本运行命令 #1,然后重复调用命令 #2 直到构建开始,然后重复调用命令 #3 直到构建完成?

或者我们创建三个步骤,每个步骤一个? BitBucket 管道是否提供循环步骤?调用一个步骤,稍等片刻,然后再调用一次,直到成功?

【问题讨论】:

    标签: jenkins bitbucket bitbucket-pipelines


    【解决方案1】:

    我认为您应该使用 Bitbucket 管道或 Jenkins 管道。同时使用这两种方法将为您提供多种选择,并使项目比应有的复杂。

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多