Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins 与 Bitbucket webhook 的配置和使用

Jenkins 与 Bitbucket webhook 的配置和使用

作者头像
Peter Shen
发布于 2020-06-12 07:44:29
发布于 2020-06-12 07:44:29
4.4K0
举报
文章被收录于专栏:持续集成持续集成

Jenkins 的 multi-branch pipeline 想必很多人已经在用了,使用这种类型的 Jenkins Job 最显著的作用就是可以对 Git 仓库里的任何分支和任何 Pull Request(以下简写为 PR)进行构建。

在做 Jenkins 与 Bitbucket 的集成时,需要安装插件:Bitbucket Branch Source,可以通过该插件在 Jenkins 里进行 webhook 的配置。这种方式对于没有 Bitbucket 仓库的管理权限,CI/CD 暂且处于变更比较频繁的阶段,不想麻烦的去申请添加 webhook 的同学来说是非常友好的。即可以不用通过管理员在 Bitbucket 设置里添加 webhook 也可以实现创建 PR 后触发 Jenkins 构建。

遇到问题

但我最近遭遇了两次失灵的情况,在创建 PR 后没有触发 Jenkins 自动构建,然而 Jenkins 和 Bitbucket Branch Source 并没有什么改动,也各种 Google 之后也没有找到相应的解决办法(如果有遇到此情况的小伙伴欢迎一起交流)。

那既然这条路不稳定,不好走,那就走一条可以走通的路、直接的硬路。即在 Bitbucket 对应的仓库中添加 webhooks。

如何配置

在申请添加 webhooks 之前,我先在个人的私人仓库下,创建了测试仓库对 webhook 进行了测试,在经过反复的测试,觉得没有问题后,将相应的配置通过管理员添加到对应的 Repository 中。如下示例:

  • Webhook name: test-multibranch
  • Webhook URL: http://localhost:8080/multibranch-webhook-trigger/invoke?token=test-multibranch
  • Test connection: 返回 200, 连接测试通过。
  • Events:
  • Repository: N/A
  • Pull Request: Opened, Merged, Declined, Deleted.
  • Active: enable

Bitbucket webhooks 设置

Jenkins multi-branch pipeline 设置

最终效果

通过以上的设置,开发人员在每次创建 PR 都会立即触发 Jenkins 构建,显著的变化有两个:

  • 比以前依赖插件响应速度要快很多,之前的响应速度一般在 1~2 分支才能触发构建
  • 稳定程度大大提高,目前为止没有再出现创建 PR 之后没有触发 Jenkins 构建的情况

最终的与 Jenkins 的集成效果是这样的:

  • 当创建 (Opened) 一个 Pull Request 时,会自动在 Jenkins 上创建相应的 Pull Request 任务(比如 PR-123)并开始构建。
  • 当合并 (Merged) 这个 Pull Request 时,会自动删除 Jenkins 中的 PR-123 任务。
  • 当拒绝 (decline) 这个 Pull Request 时,会自动删除 Jenkins 中的 PR-123 任务。
  • 当删除 (Deleted) 这个 Pull Request 时,会自动删除 Jenkins 中的 PR-123 任务。

已经 Merge 的分支,会显示已经划掉了,灰色的,这种分支不可以再进行执行构建;而 developmaster 分支则可以继续手动或自动构建。

已经 Merge 了的 Pull Request 同样显示为已经划掉了,灰色的。PR-12, PR-13, PR-14 可以继续手动或自动构建。

事件补充

这里说一下我为什么没有添加 Modified 事件。此前我是添加了这个事件,但我发现一些处于待合并的分支不知不觉被 webhook 触发了很多次,由于我们的全平台构建、扫描、以及测试需要至少 2~3 小时的时间,当处于待合并的 Pull Request 过多时,对构建资源的占用可能会是全天候的。

我想应该是其中的哪个事件的特性所导致引起的,果不其然,这时候才注意到 Modified 事件的这段解释:A pull request's description, title, or target branch is changed. 从解释里可以看到 Modified 事件包含修改 PR 描述、标题、还包括了目标分支的变更都会触发构建。

其实这个 Modified 事件的这个特性本身是特别好的,可以不断的将已经合并到目标分支的代码拉取到源分支进行构建,保证源分支的代码一直是与最新的代码进行集成、构建和测试,这样集成的结果才是最准确可靠的。但只是不适合目前的我们,因此暂且没有开启 Modified 事件。

这里没有添加其他 webhook 事件,比如对于主分支的触发事件,这个可以根据具体需要进行添加。如果不是那么频繁,每日构建满足需求,那么在 Pipeline 里添加一个 trigger 就可以了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过 generic-webhook-trigger 插件实时获取 Bitbucket Repository Events
本篇讨论如何通过 Jenkins generic webhook trigger 插件来获取 Git 仓库事件(Events)。比如获取仓库的 Pull Request ID 等。
Peter Shen
2020/08/11
1.7K0
Jenkins 同步 Bitbucket 代码到 GitHub 中
最近我们团队需要将一些示例和例子从内部的 Bitbucket 同步到 GitHub。我了解 GitHub 可以创建公共的或是私人的仓库,但我们需要保持以下两点
Peter Shen
2020/06/12
1.6K0
Jenkins 同步 Bitbucket 代码到 GitHub 中
『Jenkins』在Jenkins中实现多分支Pipeline构建
在现代软件开发中,持续集成(CI)和持续交付(CD)是实现敏捷开发的重要实践。Jenkins作为最受欢迎的自动化工具之一,广泛应用于CI/CD流程中,帮助团队在代码提交后自动化构建、测试、部署等任务。Jenkins的流水线功能(Pipeline)为开发者提供了一个灵活、可扩展的自动化工作流工具。
数字扫地僧
2025/01/15
2590
面向初学者的Jenkins多分支管道教程
让我们从多分支管道基础知识开始。具体来说,在本节中,我将介绍什么是多分支管道,以及为什么对所有Jenkins CI / CD管道使用它必不可少。我还将向您展示多分支管道如何与详细的工作流图一起工作。
DevOps云学堂
2020/12/31
9.8K0
面向初学者的Jenkins多分支管道教程
Webhook 通用触发插件
这篇文章将介绍我在 Jenkins 上遇到的一些常见问题,以及如何通过开发通用 Webhook 触发插件来解决这些问题。
LinuxSuRen
2020/01/03
1.5K0
使用 Jenkins 实现 CI/CD 多分支流水线
Jenkins 是一个持续集成服务器,用于从版本控制系统(VCS)中获取最新代码,然后对其进行构建、测试并将结果通知给开发人员。除了作为一个持续集成(CI)服务器之外,Jenkins 还可以做很多其它的事情。最初它被称为 Hudson,是川口耕介(Kohsuke Kawaguchi)基于 Java 编写的一个开源项目,因此,在安装和运行 Jenkins 之前,首先需要安装 Java 8。
LinuxSuRen
2020/02/14
3.3K0
使用 Jenkins 实现 CI/CD 多分支流水线
每个 Jenkins 用户都应该知道这三个最佳实践
在使用 Jenkins 实施了企业级的 CI/CD 工作,有如下三个最重要的实践和总结。
Peter Shen
2020/07/10
1.9K0
每个 Jenkins 用户都应该知道这三个最佳实践
使用jenkins实现自动拉取码云代码,实现自动化部署
紧接着上文说起,咱们这次来完成基于jenkins的自动化部署,也就是当有新的代码推送就会触发自动构建。
zz_jesse
2020/10/28
1.7K0
使用jenkins实现自动拉取码云代码,实现自动化部署
Jenkins配置仅合并代码后触发流水线
合并后GitLab的webhook触发了, 我们需要对比开启请求和合并请求的数据。找不同,找特点。
DevOps云学堂
2022/05/23
1K0
Jenkins配置仅合并代码后触发流水线
Jenkins多分支构建
在实际中,需要多分支同时进行开发。如果每个分支都创建一个Jenkins项目,比较多余。创建选择 Multibranch Pipeline
陈不成i
2021/06/03
3K0
Gitlab配置webhook监听其他分支merge到主分支
某大佬让我实现gitlab的webhook,监听到其它分支合并到mater分支后给DY发邮件。我做过用 push 到 github触发jenkins实现自动部署,但是那个时候就是自己玩,不用考虑分支和其它。其实一旦扯到分支上,其实我个人感觉就难了。但是,还是要干的。
CBeann
2023/12/25
5580
Gitlab配置webhook监听其他分支merge到主分支
jenkins harbor webhook自动触发构建
cicd还是基于jenkins(spinnaker虽然也玩了,公司规模也小,简单jenkins可以走天下)其实很多场景还是手动构建的,基本没有做自动构建的jenkins流程。今天就突然有了那么一个需求。合作方大爷要频繁修改一个镜像。恩他们构建了镜像上传到仓库(仓库咱们的,对方木有),他们也不想第二次操作jenkins什么的...当然了他们也不会把代码仓库给到咱,然后我就想到了jenkins的构建触发器-Generic Webhook Trigger去触发构建。
对你无可奈何
2023/02/24
1.5K0
Gitee + Webhooks + Jenkins 实现自动化部署
作为一名前端开发扫地僧,得折腾。通过 push pull request 等操作,直接自动化部署到服务器,之后再发送邮件,这样的逼格岂不是提升了些许。。
离殊
2022/04/01
1.3K0
Gitee + Webhooks + Jenkins 实现自动化部署
Docker Hub:保存并分享你的Docker镜像
Docker Hub 是一个基于云的注册服务网站,提供容器应用或容器服务的构建功能。
fly2wind
2018/01/10
2.9K0
Docker Hub:保存并分享你的Docker镜像
【Jenkins系列】自动化构建
自动化构建的流程:将代码合并到自动化测试分支上,在开发发送请求合并事件时即触发Jenkins自动构建,完成打包、部署、跑自动化测试用例,构建完成之后发送测试报告。
用户9913368
2022/08/13
6630
【Jenkins系列】自动化构建
Jenkins+GitLab Webhooks自动构建项目
1 构建步骤 1.1 Jenkins中设置构建触发器   这里先随便写个令牌。 图片   这里先随便写个令牌。我们浏览器直接访问:http://192.168.159.51:8080/job/firs
别团等shy哥发育
2023/03/01
2.1K0
Jenkins+GitLab Webhooks自动构建项目
Jenkins CI/CD with GitHub webhook
下面分享一下 Jenkins 结合 GitHub webhook 构建 CI/CD 流的简单实现
franket
2021/08/12
1.5K1
Jenkins打造多分支流水线指南
Jenkins pipeline-as-code 使您可以在项目/应用程序源代码存储库中维护CI / CD工作流逻辑,而无需在Jenkins中为每个分支维护其配置。用于构建/测试/部署的流水线代码始终和你的项目/应用程序源代码同步。在仓库中我们用jenkinsfile对流水线代码进行描述。关于jenkinsfile,其简介及语法可参考官方文档
东溪陈姓少年
2020/08/06
3.5K0
Jenkins 构建自动化 .NET Core 发布镜像
在本章中,将介绍如何在 Linux 下使用 Docker 部署、启动 Jenkins,编写脚本,自动化构建 .NET Core 应用,最终将 .NET Core 应用打包为 Docker 镜像。
痴者工良
2021/06/29
2.5K0
手把手教你用Jenkins自动发布Docker
首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/
李国宝
2018/05/23
2.4K0
手把手教你用Jenkins自动发布Docker
相关推荐
通过 generic-webhook-trigger 插件实时获取 Bitbucket Repository Events
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档