当将代码推送到Bitbucket时构建Jenkins作业

4
我在Bitbucket上有一个项目,最近安装了Jenkins。在Jenkins中,我创建了一个作业。从“新建项目”开始,我勾选了“自由风格项目”,并没有向Jenkins项目添加任何内容。
在“配置”部分中:
- 我添加了源代码管理 -> 无 - 构建触发器 -> 当代码推送到BitBucket时构建
在Bitbucket中,我进入了:
- 项目设置 - 钩子 - 选择钩子 -> Jenkins - 添加钩子
然后添加了以下值:
- 端点:http://myaddress.com:8080 - 模块名称:我的Jenkins作业名称 - 项目名称 - 空 - 令牌 - 空
因此,当我将代码推送到Bitbucket时,我希望能够自动构建我的Jenkins作业。

当您手动运行构建时,它是否正常工作? - Technext
@Technext,它构建成功了,但是什么也没有 ;) - Kanishka Panamaldeniya
@Technext 你好,在Jenkins中,我使用一个用户登录,所以他有一个令牌,我也将该令牌添加到了Bitbucket钩子中。但它仍然无法正常工作。 - Kanishka Panamaldeniya
你试过这个建议了吗? - Technext
请看我之前写的这个答案,我认为它可以帮助你从Git提交中拉取一个作业构建。 - germanio
请查看答案:https://dev59.com/ql0Z5IYBdhLWcg3wrByH#36319282。 - Haukur Kristinsson
3个回答

3
经过一些研究,我最终找到了一个好的解决方案:
  • 在您的Jenkins上安装Bitbucket插件
  • 将普通的Post添加到您的Bitbucket仓库中 (设置 -> 钩子),并使用以下url:

https://您的Jenkins服务器:端口/bitbucket-hook

  • 配置Jenkins项目如下:
    • 构建触发器下启用当有变更推送到BitBucket时构建
    • 源代码管理下选择GIT; 输入您的凭据并定义要构建的分支 (例如 **feature/*)

通过这种方式,我有三个构建项目,一个用于所有功能,一个用于开发和一个用于发布分支。

最好的是,您不必为每个Jenkins项目创建新的钩子,只需定义单独的构建过程或要构建的分支即可。


3
请不要忘记在最后加上斜杠'/': ht tps://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/ - Giang
当创建标签时,我们可以触发构建吗? - Thai Tran

1
据我所知,您需要设置Git或Mercurial才能使用BitBucket。 毕竟,您将对文件进行更改。 有关如何在Jenkins中配置它的进一步信息,请参阅以下链接。
下面是提到的链接中的一些详细信息:
准备Jenkins项目
  1. 创建一个新项目或配置您现有的项目,您想要与您的Bitbucket帐户连接:

    a)在“源代码管理”下,添加您的Git或Mecurial仓库

    b)在“构建触发器”下,勾选“远程触发构建(例如,从脚本中)”,并在“身份验证令牌”字段中添加一个真正随机的字符串。我现在使用KeePassX的随机密码生成器功能来生成随机且安全的字符串

  2. 在我们将其与Bitbucket连接之前,我们需要从Jenkins帐户中获取API令牌:

    a)返回到Jenkins主页,在侧边栏中单击“People”链接

    b)在People页面中,单击我们新创建的帐户条目

    c)在我们的用户页面中,单击侧边栏中的“配置”链接

    d)在“API令牌”下,单击“显示API令牌”按钮并复制该条目

Bitbucket + Jenkins = 极致体验!

现在是时候将Jenkins与Bitbucket连接起来了!访问您想要的Bitbucket存储库概述页面,然后单击“管理”选项卡。
在存储库的管理页面下,单击侧边栏上的“服务”:
a. 从“选择服务…”下拉列表中选择“Jenkins”,然后单击“添加服务”
b. 您将看到四个字段:
b1)端点:在此处,您需要按以下格式设置Jenkins URL-http://username:apitoken@yourjenkinsurl.com/
b2)项目名称:您在Jenkins中设置的项目名称
b3)令牌:这是我们在步骤4中创建的身份验证令牌
b4)模块名称:(可选)好的,这是一个非常棒的功能,允许您告诉Bitbucket仅在提交包含以某个模式开头的文件名时触发构建

参考:http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins


1
链接2和3已经失效。 - agilob

0

我还没有在Bitbucket上使用过它。但是它看起来是一个简单的要求,Jenkins的Poll SCM功能应该可以为您工作。您可以查看 这里的说明

当然,您需要在Jenkins中添加您的SSH公钥才能使其正常工作

我不确定您描述的方法中Jenkins将使用什么身份验证机制从Bitbucket检出您的代码库?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接