Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查构建状态,从BitBucket管道运行Jenkins作业?_Jenkins_Bitbucket_Bitbucket Pipelines - Fatal编程技术网

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

如何检查构建状态,从BitBucket管道运行Jenkins作业?,jenkins,bitbucket,bitbucket-pipelines,Jenkins,Bitbucket,Bitbucket Pipelines,我们使用BitBucket来托管Git存储库 我们已经在本地托管的Jenkins服务器中定义了构建作业 我们想知道在请求获得批准后,是否可以使用BitBucket管道在Jenkins中触发构建 通过RESTAPI触发Jenkins中的作业相当简单 1: curl --request POST --user $username:$api_token --head http://jenkins.mydomain/job/myjob/build 这将返回一个位置响应头。通过对其进行获取,我们可以获得

我们使用BitBucket来托管Git存储库

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

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

通过RESTAPI触发Jenkins中的作业相当简单

1: curl --request POST --user $username:$api_token --head http://jenkins.mydomain/job/myjob/build
这将返回一个位置响应头。通过对其进行获取,我们可以获得有关排队项目的信息:

2: curl --user $username:$api_token http://jenkins.mydomain/queue/item/<item#>/api/json 
2:curl——用户$username:$api\u令牌http://jenkins.mydomain/queue/item//api/json 
这将返回描述排队项的JSON,指示该项是否被阻止以及原因。如果不是,则包含构建的URL。这样,我们就可以检查构建本身的状态:

3: curl -–user $username:$api_token http://jenkins.mydomain/job/myjob/<build#>/api/json
3:curl-–用户$username:$api\u令牌http://jenkins.mydomain/job/myjob//api/json
这将返回更多的json,指示作业当前是否正在生成,如果已完成,则表示生成是否成功

现在BitBucket管道步骤在Docker容器中运行,并且必须在Linux上运行。我们的Jenkins build作业在许多平台上运行,但并非所有平台都是Linux。但是BitBucket不应该在意。可以在Linux中进行必要的RESTAPI调用,正如我在上面的示例中所做的那样

但是我们如何编写脚本呢

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


或者我们创建三个步骤,每个步骤一个?BitBucket管道是否提供台阶上的循环?调用一个步骤,等待一段时间,然后再次调用它直到成功?

我认为您应该使用Bitbucket管道或Jenkins管道。使用这两种方法将为您提供许多选择,并使项目变得更加复杂