Atlassian Bitbucket v8.5.1 有一个新功能,称为“所需构建”,您可以在其中指定在将 PR 合并到分支之前应通过哪些构建。
信息这里。
我发现有点难以理解指定构建密钥的正确方法。医生说:
Jenkins 作业的构建密钥是路径中每个项目的名称 构建,由正斜杠分隔。例如;一个名为 包含名为 COREBUILDS 的多分支管道作业的 PROJ,然后 构建密钥将是 PROJ/COREBUILDS。
但我的设置更简单,不涉及多分支管道作业。 有人知道如何在 Jenkins 中通过“构建密钥”指定他们所指的内容吗?
如果您使用的是 Stash/Bitbucket Notifier Plugin,则构建密钥似乎遵循格式
<job_name>-<escaped_jenkins_url>
,其中 Jenkins URL 是从服务器的 Configure System 视图获取的,并且斜杠被转义。
例如,如果我的作业名称是 Job-A 并且我的 Jenkins 服务器配置了 URL https://www.jenkins.com/ - 作业密钥将为
Job-A-https:\\/\\/www.jenkins.com\\/
。
在 Bitbucket 中,您可以使用填充 PR 的 Builds 选项卡的 UI API 查找现有的构建密钥。目前,该 UI API URL 为
<bitbucket url>/rest/ui/latest/projects/<project_slug>/repos/<repo_name>/pull-requests/<pr_id>/builds
。
这个话题我纠结了一段时间,终于解决了。
上下文:我们没有使用插件向 bitbucket 发送通知,而是通过 bitbucket Rest api 发送通知(这是要使用的端点 https://developer.atlassian.com/server/bitbucket/rest/v819/api -group-builds-and-deployments/#api-api-latest-projects-projectkey-repos-repositoryslug-commits-commitid-builds-post )
正如您在该端点的文档中看到的,
key
是必填字段,但这并不是真正用于 required builds
检查的字段。相反,required builds
会查找 parent
字段,这应该与 required builds
中的条件匹配。
因此我们的解决方案是在发送 bitbucket 通知时设置构建的
parent
字段。我们放入 parent
的是我们在 required builds
中寻找的构建