如何在推送到开发服务器的代码上触发 jenkins 作业?



我在bitbucket上有开发代码存储库,在bitbucket上有另一个测试脚本代码存储库。现在我已经通过链接测试代码存储库设置了一个 Jenkins 作业。有没有办法在开发存储库中更改时自动触发 jenkins 作业?

您可以将 BitBucket 插件添加到 Jenkins 实例中。它将允许您在BitBucket中配置一个Webhook,然后触发任何侦听该Webhook的Jenkins作业。该插件的页面有详细的细分,但基础知识是;

  1. 在 BitBucket 的存储库中,使用 Jenkins 的 url 创建一个新的 Webhook。我相信网址通常是http://[your jenkins url]/bitbucket-hook/
  2. 使触发器成为存储库推送。
  3. 在您的 Jenkins 作业中,选中"构建触发器"部分下的"将更改推送到 BitBucket 时构建"框。

现在,只要您提交到创建 Webhook 的存储库,该 Jenkins 作业都将运行。

您还可以通过参数化 Jenkins 构建来限制哪些分支触发提交,以忽略某些分支/关键字/等,如果这是您的特定项目需要的东西。

按源代码更改构建

你可以让 Jenkins 轮询你的版本控制系统的更改。您可以指定 Jenkins 轮询版本控制系统的频率,使用与 Unix/Linux 上的 crontab 相同的语法。但是,如果轮询周期短于轮询版本控制系统所需的时间,则最终可能会为每个更改生成多个版本。应将轮询周期调整为比轮询修订控制系统所需的时间长,或使用提交后触发器。您可以检查每个构建的轮询日志,以查看轮询系统所花费的时间。

或者,您可以使用 URL 触发器(如上所述),而不是按固定间隔轮询,但在 URL 末尾使用/polling 而不是/build。这使得 Jenkins 轮询 SCM 以进行更改,而不是立即构建。这可以防止 Jenkins 运行一个没有相关更改的构建,以影响与作业无关的模块或分支。使用/polling 时,必须为轮询配置作业,但计划可以为空。

最新更新