我想配置bitbutcket来触发jenkins构建。
我花了一段时间研究这个问题,所有的答案都是几年前的,而且没有找到任何指南,因为从那以后情况似乎发生了变化。
我想要做的事情:--向特定分支推送bitbucket --将触发构建。
我得到了什么: Bitbucket web钩子,它在向任何分支推送时向Jenkins发送HTTP。我还在Jenkins上安装了Bitbucket插件,它在作业配置Build when a change is pushed to BitBucket中添加了一个复选框。这个复选框似乎不起作用(也许我设置错了?)),尽管我推到配置好的SCM部分中的分支。
Problem 1:Bitbucket不触发GET,而是触发另一个导致403的请求。我和邮递员一起测试过,它适用于GET,而不是POST。
问题2:这个HTTP请求是在推送到任何分支时触发的。虽然构建仍然局限于特定的分支,但似乎没有必要一直进行重建。
我如何处理这些问题?Bitbucket在定制这方面似乎不太灵活。bitbucket的Jenkins插件有很多“坏”的评论。开发人员目前是如何做到这一点的?
发布于 2017-08-31 03:44:14
您的Jenkins URL可以从bitbucket服务器访问吗?如果是的话,那么做起来应该相当简单。您可以将web钩子添加到存储库中,作为http://<url-of-jenkins>/git/notifyCommit?url=<url-of-repository>。当jenkins收到这篇文章时,它会自动触发那些使用这个git与你在web钩子中给出的URL的作业构建。
但是,您还需要确保将Build Schedule设置为空用于这些作业。否则就不会被触发。您也可以在web钩子URL中指定分支。
请看这里的Push Notification from repository
发布于 2017-12-19 15:06:39
针对Jenkins服务器的专用解决方案--针对Bitbucket插件的Webhook to Jenkins已在最新版本的位桶中商业化,目前的价格约为4800美元,这是早期的免费产品。正因为如此,那些想要省钱的人可以通过使用位桶的webhooks特性找到另一种解决方案:
创建网络钩子的步骤:-
BitBucket侧
1)转到bitbucket回购,单击Repository设置,在WORKFLOW got for WEBHOOKS选项下创建一个web钩子。
( a) webhook的创建:- URL https://JenkinsserverURL/git/notifyCommit?url=https://bitbucket.repository-link/repository.git
( b)在“名称”选项卡中,提供您选择的任何名称。
c)在保存测试连接之前单击它。确保您获得http状态200 d)查看详细日志,检查您的请求和响应是正确的。
詹金斯那边要处理的事情:-
1)确保在Jenkins作业中使用bitbucket Web钩子中提到的存储库。2)在SCM选项中,激活/选择Poll SCM选项,不要在计划中提及任何内容,将其保留为空白。3)配置rest作业,
每当您的git回购观察到任何更改,自动构建将被触发在Jenkins。默认情况下,推送触发器被激活,如果要激活其他操作,请在创建web钩子时选择这些事件。
*在储存库web钩子中指定分支:-
http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>]干杯,
发布于 2022-07-26 02:06:23
对于2022年7月以后在这里的任何人,下面是我为使其工作所遵循的简单步骤。
创建一个活动的Jenkins URL
首先,使用ngrok创建一个从活动URL到本地Jenkins的隧道,因为直接使用locahost:8080作为bitbucket上的web钩子URL将无法工作,因为bitbucket不识别您的本地计算机。
ps: ngrok claims to be the fastest way to put anything on the internet and I agree,
you can use it beyond Jenkins once you know the trick,
such as quickly handling out your localhost react app for testing by your friends
out of your local network做这件事很简单。对于Linux:
snap install ngrokngrok config add-authtoken <token>别给我钱了,注册
ngrok http 8080 )要了解更多信息和其他操作系统,请检查ngrok下载页面
然后你会得到如下的回应
ngrok (Ctrl+C to quit)
Hello World! https://ngrok.com/next-generation
Session Status online
Account <your email>@<domain>.com (Plan: <plan type>)
Version 3.0.6
Region Europe (eu)
Latency 162ms
Web Interface <web interface url>
Forwarding https://<your-assigned-host>.ngrok.io -> http://localhost:8080 基本上,点击时的web接口URL为您提供了一个web接口,用于检查从ngrok实时URL到本地主机的所有请求。
转发URL基本上是到本地主机的代理,所以当您想配置web钩子时,不使用locahost:8080,而是用ngrok (例如https://syue-162-34-12-01.eu.ngrok.io )替换它,所有请求都被隧道化到本地主机:8080。
连接bitbucket云上的URL
其次,使用URL JENKINS_URL/bitbucket-hook/ (不需要凭据,但要记住后面的斜杠)使用Web钩子配置Bitbucket存储库,例如https://syue-162-34-12-01.eu.ngrok.io/bitbucket-hook/
如果您使用的是bitbucket服务器,而不是云,或者您想知道更多,那么Jenkins的bitbucket插件文档非常简单易懂,请参阅bitbucket插件。
然后,您可以检查web接口url或终端上的所有web钩子请求,并通过本地主机端口或ngrok live检查Jenkins上的构建日志。
免责声明:我还没有弄清楚如何只在特定分支发生更改时才启用构建,但您可以将jenkins配置为只生成特定分支或根据需要创建的任何分支,请检查源代码管理和Build触发器
https://stackoverflow.com/questions/45971311
复制相似问题