如何从BitBucket管道运行Jenkins作业以检查构建状态?

时间:2019-12-05 20:36:20

标签: jenkins bitbucket bitbucket-pipelines

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

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

我们想知道是否可以在请求请求获得批准等之后使用BitBucket管道来触发Jenkins中的构建。

通过其REST API在Jenkins中触发作业非常简单。

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管道是否提供循环执行步骤?调用一个步骤,稍等片刻,然后再次调用它,直到成功?

1 个答案:

答案 0 :(得分:0)

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