在我配置的詹金斯上:
源代码管理
Git存储库:https://bitbucket.org/username/project.git
凭据:用户名/密码
构建器触发器
将更改推送到BitBucket时构建
在我的BitBucket Webhooks上:
http://Jenkins.URL:8080/bitbucket-hook
我尝试将一个小更改推送到.txt文件,但Jenken不会自动构建。如果我手动点击“立即构建”,它会显示成功。
可能是什么问题?
在bitbucket存储库中,项目很简单。我只有一个文本文件来测试。我想只要我对文本文件做了任何更改,就应该触发Jenkins构建。
编辑:
在Jenkins的系统日志中,它显示“轮询尚未运行。”。但是在Bitbucket Webhook请求日志中,我可以看到所有请求。
答案 0 :(得分:35)
您不需要启用轮询SCM ..
您必须确保您的Webhook(设置 - > Webhooks)指向您的Jenkins bitbucket-hook
,如下所示:" https://ci.yourorg.com/bitbucket-hook/"。
请注意,最后" /",如果没有它,将不会触发构建。
这是一件令人讨厌的事情,因为无论是否有发送请求,您都会从Jenkins获得200状态代码。
答案 1 :(得分:3)
您是否将复选框标记为:Poll SCM?另外,请确保您安排在短时间内尽快检测存储库中的更改。
也许你的问题是你安排了很长时间,并且在推动Jenkins等待一段时间来检测变化之后。
答案 2 :(得分:2)
使用Jenkins 2.53和Bitbucket插件1.1.5,我必须首先手动触发构建以使webhook工作。
让我感到惊讶的是documentation:
中的这一行如果作业的SCM(git)检测到远程存储库已更改,那么
之后webhook工作得很好。
答案 3 :(得分:1)
这需要您的Jenkisserver拥有the bitbucket plugin。通过转到https://yourjenkinsserver.com/bitbucket-hook/来检查它 - 它会崩溃,但你会知道你安装了它。
答案 4 :(得分:1)
在使用BitBucket插件苦苦挣扎之后,我设法使其正常运行。 以下是我发现触发构建所必需的内容的摘要,但从插件的文档中看不出来:
repository push
触发器。我以为pull request created
/ updated
就足够了(我想要的是建立PR),但是the plugin reacts only to push
就足够了。https://bitbucket.org/REPOSITORY_OWNER/REPOSITORY_NAME
。如果是SSH网址,则插件将与之不匹配。我希望这会有所帮助。如果仍然没有为您触发构建,请尝试enabling logs进行以下课程:
com.cloudbees.jenkins.plugins.BitbucketHookReceiver
com.cloudbees.jenkins.plugins.BitBucketTrigger
com.cloudbees.jenkins.plugins.BitbucketJobProbe
com.cloudbees.jenkins.plugins.BitbucketPayloadProcessor
com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource
答案 5 :(得分:0)
我正在做同样的事情,但我的詹金斯没有Bitbucket Plugin。
我在我的Bitbucket中使用Jenkins Plugin。我已经在每个存储库上配置了webhook,并使用简单的Jenkins URL进行指向。 然后,在我需要的每个工作中,只需选中“有/没有时间表”的“轮询SCM”(不需要)。
这样做非常好,我在Jenkins中避免了另一个插件安装。
答案 6 :(得分:0)
你必须注意 分支说明符字段并指定您要推送的分支。
如果没有检测到任何更改,Bitbucket的Jenkins插件将无法启动作业。 你可以添加多个分支来观看。仅限官方文档提及如果作业的SCM(git)检测到远程存储库已更改,那么它将调用构建。
因此,如果您将分支说明符保留为其默认值* / master,并且您要推送到其他分支,则不会执行该作业。
答案 7 :(得分:0)
使用Bitbucket插件在Jenkins 2.138.1上发生了相同的问题,问题是我必须启用“源代码管理”-> git,否则尽管Webhook出现在Jenkins的日志中(/ var /log/jenkins/jenkins.log)。
答案 8 :(得分:0)
对于像jenkins
和CI\CD
一样陌生的像我这样的人:
我们应该为我们要自动构建的每个存储库分别添加webhook
。
我正在尝试构建一个项目,然后我将jenkins url
作为webhook
添加到了另一个项目中,并错误地认为{{1} }对于使用bitbucket帐户的所有项目都是通用的。但是事实并非如此。一件好事,有时容易被忽视。
我还使用了webhook
而不是Build when a change is pushed to BitBucket
的选项,其他答案建议我们应该使用它,但是Poll SCM
选项对我有用。
答案 9 :(得分:0)
我也遇到了这个问题,并通过更新jenkins中的bitbucket插件来解决:
还要确保webhook网址的格式正确,并在末尾添加“ /”:
{JenkinsURL} / bitbucket-hook /
答案 10 :(得分:0)
就我而言,这是通过将Bitbucket的“分支选项”(高级配置)设置为“ Jenkins Webhook”设置为“全部构建”来解决的。
答案 11 :(得分:0)
如果您尝试在 Bitbucket Cloud 中使用 webhook,并且尝试在 AWS EC2 中托管的 Jenkins 中触发构建,则应将来自 Bitbucket 的传出 IP 地址添加到您的安全组。 https://support.atlassian.com/organization-administration/docs/ip-addresses-and-domains-for-atlassian-cloud-products/
答案 12 :(得分:-1)
正如@Adrian所说,你仍然需要选择“Poll SCM”。这有点不直观,但是当BitBucket webhook向Jenkins发送请求时,Jenkins将轮询所有引用BitBucket repo所做作业的作业的更改。您可以为投票设置较长的时间间隔,例如@monthly,因为你不需要Jenkins的调度来触发轮询;一旦做出改变,网络钩子就会处理这个问题。
答案 13 :(得分:-1)
我一直在为此问题苦苦挣扎,并且在Jenkins文档中找不到解决方案,我在Cloudbees支持站点找到了here解决方案。
您只需要将以下两个webhooks添加到您的Bitbucket存储库中即可:
https://JENKIN_URL/bitbucket-scmsource-hook/notify
https://JENKIN_URL/bitbucket-hook
我为所有管道甚至多分支管道工作。
希望这对某人有所帮助;)
ADA
答案 14 :(得分:-1)
我在这里第二次声明说,我们不需要POLL SCM选项和“将更改推送到BitBucket时进行构建”,但是我们需要确保在Bit bucket中创建的webhook是正确的。
我在BitBucket中使用的设置是: 存储库设置-> Webhooks
1. Title: <Anything>
2. URL: https://jenkins_server_ip:8443/bitbucket-hook/
3. Status: (Tick) Active
4. SSL / TLS: (Tick) Skip certificate verification (Not ticking this was causing no auto-trigger in my case)
5. Request History: (Untick) Enable request history collection
6. Triggers : (Tick) Repository push
希望这会有所帮助!