我如何让jenkinsbuild立到一个BitBucket git存储库?

我有一个托pipe在BitBucket上的git存储库,并且已经在存储库和我的Jenkins服务器之间build立了SSHvalidation。 我可以手动构buildJenkins,但不能在BitBucket上获得Jenkins服务来触发构build。

Jenkins configuration: - Project Name: [my_jenkins_job] - Build Triggers: --Trigger Builds Remotely: ---Token: [token] BitBucket configuration: - Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token]) - Project Name: [my_jenkins_job] - Module Name: [blank] - Token: [token] 

访问http:// {my_jenkins_address} / job / {my_jenkins_job} / build?token = {token}正确启动构build。

为什么不推动对BitBucket的更改导致Jenkins启动构build?

我有我们的Jenkins实例设置每分钟轮询存储库。 这是不是你的需求不够频繁?

我们的Jenkinsconfiguration:

构build触发器>调查SCM =检查

构build触发器>调查SCM> Schedule =

 # every 1 minute */1 * * * * 

由于Bitbucket的Jenkins Hook对我来说根本不起作用,我对不同的分支有不同的Jenkins项目,

  • 在Jenkins上安装Bitbucket插件
  • 添加一个普通的Post钩子到你的Bitbucket仓库( 设置 – 钩子 )并使用下面的url:

https:// YOUR.JENKINS.SERVER:PORT / bitbucket-hook /

如果你在jenkins上设置了身份validation,那么URL必须是

https:// USERNAME:PASSWORD@YOUR.JENKINS.SERVER:PORT / bitbucket-hook /

  • configuration你的Jenkins项目如下:
  • 生成 触发器启用生成时,将更改推送到BitBucket
  • 源代码pipe理下selectGIT ; input您的凭据并定义要build立的分支 (如**function/ *

通过这种方式,我有三个构build项目,一个用于所有function,一个用于开发,一个用于发布分支。 确保在URL的末尾包含斜线('/'),否则挂钩将不起作用。

最好的是,您不必为新的Jenkins项目添加新的钩子。

实际上,你可以通过Bitbucket服务在Jenkins中工作,但是需要花一些时间才能正常工作。

如果您使用身份validation,则可以从可以创build构build的用户之一获取API令牌。 我为Bitbucket创build了一个单独的帐户。 您至less需要使用Jenkins 1.426来使用API​​令牌。 然后,您可以使用API​​身份validation的HTTP身份validation作为Bitbucket服务的密码。

这是我的build立:

端点: http:// [bitbucket]:[APITOKEN] @ [www.example.com/jenkins/]

项目名称: [NameOfMyJenkinsProject]

模块名称: [空]

令牌: [jenkins项目设置中find的令牌]

在我这样设置之后,我可以使用令牌和身份validation来启用Bitbucket的推式触发构build。

如果您在Jenkins中使用身份validation,则令牌内容无用。

使用Git插件,并使用http[s]://your.site.com[/jenkins]/git/notifyCommit?url=git@bitbucket.org:your-username/your-repo.git它。 确保轮询已经开始,并按某个值计划,否则这将无法工作。

使用Poll SCM是好的,但它也有一些缺点,它会从你的GIT Repository中获取元数据,无论如何,它使用你的bitbucket服务器和Jenkins服务器的一定比例的带宽。

如果有任何新的更新到达,Bitbucket知道何时触发Jenkins更好。如果您使用的是最新版本的bitbucket,那么现在有一个插件名称“Stash webhooks for Jenkins”,现在与Bitbucket兼容。

在这个插件中,您只需指定Jenkins URL和JOB名称,这也提供了Jenkins和Bitbucket之间的额外安全层。 在这里输入图像说明

这是插件(jenkins的Stash webhooks,不叫做Jenkins的Bitbucket webhooks),可以从Atlassian Marketplace下载。

在这里输入图像说明 以上是您需要指定Jenkinsurl和回购克隆url的附加设置。 使用触发器,您也可以检查连接等。

链接为插件: Jenkins的webbucket

这个插件如何工作:

  1. 在Jenkins中安装Git Plugin。 configuration您的项目以使用Git进行源代码pipe理。 您将需要保留您在Stash中用于configuration的存储库URL。 在“构build触发器”中启用“轮询SCM”选项。 这是远程触发构build所必需的。 由于我们不需要轮询,所以您可以将轮询频率设置为很less轮询。 保存你的项目configuration。

    1. input您的Jenkins实例的URL以及您configurationJenkins使用的Repository URL。 您可以使用下拉列表获取每个支持的协议的克隆URL。 之后,请随意将其更改为与您的Jenkins实例相匹配。

    2. 而已!

    现在configuration了Jenkins和Stash,如果你提交了代码,一个构build触发器会自动发生。 发生什么事是post-receive hook向Jenkins发出一个GET请求,然后告诉它轮询存储库(为什么你需要打开轮询)。 民意调查检查是否有实际的变化。 既然有,它触发构build!

只需安装bitbucket插件,并按照插件页面上的说明进行操作:

使用URL JENKINS_URL / bitbucket-hook(不需要凭据)使用POST挂钩configuration您的BitBucket存储库。 在每次提交时,将触发启用了“当更改被推送到BitBucket时生成”的所有作业。

看到这里: https : //wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin