首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitBucket WebHook Jenkins

BitBucket WebHook Jenkins
EN

Stack Overflow用户
提问于 2017-08-30 23:53:59
回答 3查看 22.2K关注 0票数 9

我想配置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插件有很多“坏”的评论。开发人员目前是如何做到这一点的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

https://wiki.jenkins.io/display/JENKINS/Git+Plugin

票数 9
EN

Stack Overflow用户

发布于 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钩子中指定分支:-

代码语言:javascript
复制
http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>]

干杯,

票数 28
EN

Stack Overflow用户

发布于 2022-07-26 02:06:23

对于2022年7月以后在这里的任何人,下面是我为使其工作所遵循的简单步骤。

创建一个活动的Jenkins URL

首先,使用ngrok创建一个从活动URL到本地Jenkins的隧道,因为直接使用locahost:8080作为bitbucket上的web钩子URL将无法工作,因为bitbucket不识别您的本地计算机。

代码语言:javascript
复制
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:

  1. 安装ngrok snap install ngrok
  2. 添加authtoken ngrok config add-authtoken <token>

别给我钱了,注册

  1. 在你的詹金斯港开一条隧道(如ngrok http 8080 )

要了解更多信息和其他操作系统,请检查ngrok下载页面

然后你会得到如下的回应

代码语言:javascript
复制
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触发器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45971311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档