【问题标题】:Build jenkins job when push code to bitbucket将代码推送到 bitbucket 时构建 jenkins 作业
【发布时间】:2014-09-12 06:52:34
【问题描述】:

我在 bitbucket 中有一个项目,最近安装了 jenkins 。

在 jenkins 中,我在 jenkins 创建了一份工作。从New Item,我勾选了Freestyle project,并没有向jenkins项目添加任何东西。

在配置部分

  • 我添加了源代码管理 -> 无
  • 构建触发器 -> 将更改推送到 BitBucket 时构建

在Bitbucket中去了

  • 项目设置
  • 挂钩
  • 选择钩子-> jenkins
  • 添加钩子

并添加了以下值

端点:- http://myaddress.com:8080
模块名称:我的詹金斯工作名称
项目名称 - 空
令牌 - 空

所以

当我将代码推送到 bitbucket 时,我想自动构建我的 jenkins 作业。

【问题讨论】:

  • 手动运行构建是否正常?
  • @Technext ,它构建成功但什么都没有;)
  • @Technext 嗨,在詹金斯,我是从用户那里登录的,所以他有一个令牌,我也将该令牌添加到 bitbucket 挂钩中。但它也不起作用
  • 你尝试过这个建议吗?
  • 看看我前段时间写的this answer,我认为它可以帮助你从git commit中拉出一个工作构建。

标签: java git jenkins hudson bitbucket


【解决方案1】:

经过一番研究,我终于找到了一个好的解决方案:

  • 在您的 Jenkins 上安装 Bitbucket Plugin
  • 将普通的 Post 作为 Hook 添加到您的 Bitbucket 存储库(Settings -> Hooks)并使用以下 url:

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

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

这样我就有了三个构建项目,一个用于所有功能,一个用于开发,一个用于发布分支。

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

【讨论】:

  • 请不要忘记最后一个 ht tps://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/ 中的 '/'
  • 可以在创建标签时触发构建吗?
【解决方案2】:

AFAIK,您需要设置 Git 或 Mercurial 才能使用 BitBucket。毕竟,您将对文件进行更改。有关如何使用 Jenkins 进行配置的更多信息,请参阅这些链接。

下面提到的链接中的一些细节:

准备 Jenkins 项目

  1. 创建一个新项目或配置您想要与您的 Bitbucket 帐户挂钩的现有项目:

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

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

  2. 在我们将它与 Bitbucket 挂钩之前,我们需要从我们的 Jenkins 帐户中获取一个 API 令牌:

    a) 返回您的 Jenkins 主页,点击侧边栏中的“人员”链接

    b) 在人员页面中,点击我们新创建的帐户条目

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

    d) 在“API Token”下,点击“Show API Token”按钮并复制该条目

Bitbucket + Jenkins = Bliss!

  1. 现在是时候将 Jenkins 与 Bitbucket 联系起来了!访问您想要的 Bitbucket 存储库概览页面,然后单击“Admin”选项卡

  2. 在存储库的管理页面下,单击侧边栏的“服务”:

    一个。从“选择服务...”下拉菜单中选择“Jenkins”,然后点击“添加服务”

    b.您将看到四个字段:

    b1) Endpoint: Here, you’ll need to set your Jenkins URL in the following    format — http://username:apitoken@yourjenkinsurl.com/
    
    b2) Project name: The project name that you’ve set in Jenkins
    
    b3) Token: It’s the authentication token we created in Step 4
    
    b4) Module name: (Optional) OK, this is one nifty feature that allow you to tell Bitbucket to only trigger a build when the commit contains file names that begins with a certain pattern
    

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

【讨论】:

  • 链接 2 和 3 已失效
【解决方案3】:

我还没有使用过 Bitbucket。但这看起来是一个简单的要求,Jenkins Poll SCM 功能应该适合您。你可以看看here for instructions

您需要在 jenkins 中添加您的 ssh 公钥才能正常工作

我不确定您描述 Jenkins 将使用什么身份验证机制从 Bitbucket 签出您的 repo 的方法?

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多