[英]BitBucket+Jenkins: Trigger build only when specific branch is changed
以下是该问题的声称解决方案,虽然它似乎是一种解决方法,而不是一个明确的解决方案。 有没有办法,通过作业配置或bitbucket钩子配置,我可以设置我的工作只有在推送特定分支时运行构建?
发布该问题已经过去了大约一年,我希望有一些插件更新可以在没有上述链接所需的额外工作的情况下实现这一点,或者可能总是有一种简单的方法,我只是没有看到。
正如@Ryan泰勒已经说过你可以使用Bitbucket-Plugin:
https:// YOUR.JENKINS.SERVER:PORT / bitbucket-hook
通过这种方式,我有三个构建项目,一个用于所有功能,一个用于开发,一个用于发布分支。
最好的是,您不必为新的Jenkins项目添加新的钩子。
上面提出的解决方案将比我自己更好,但我不认为Bitbucket插件允许分支特定的触发器。
从Bitbucket插件文档中,
在每次提交时,将触发所有具有“在将更改推送到BitBucket时生成”选项的作业。
这是一种霰弹枪方法,显然是浪费。
我已经通过将一个小型Web应用程序部署到托管我的jenkins实例的同一个应用程序服务器来解决了这个问题,该实例解析了bitbucket发送的json post内容并选择性地触发了分支特定的钩子。
代码简洁易懂,易于修改以满足您的需求; 但值得注意的是,我没有着手为其他人创建通用解决方案。 无论它作为一个起点对您有用。
对于相同的场景,我在构建触发器中使用Poll SCM选项
我们需要在git区域给出ref作为+refs/heads/develop:refs/remotes/origin/develop
。
这里开发的是分支名称
并且每1分钟轮询SCM schedule = */1 * * * *
它只会在开发分支更改时触发
您应该能够使用Generic Webhook Trigger插件 。 您可以使用“可选过滤器”功能仅触发所需的分支。
您将需要摆弄JSONPath,这需要您了解使用Bitbucket的webhook发送的JSON结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.