写点什么

通过合并队列改善 GitHub 的部署

  • 2024-04-26
    北京
  • 本文字数:1029 字

    阅读完需:约 3 分钟

通过合并队列改善 GitHub 的部署

最近,Github 谈到了如何使用合并队列(merge queue)来实现代码更新。GitHub.com 的合并队列已经开发并扩展到了管理超过 30000 个拉取请求(pull request),以及相应的 450 万次 CI 执行。


合并队列系统将拉取请求组织成可部署的批次,通过 GitHub Actions 启动构建和测试,并通过遵循分支保护规定以防止更新中包含失败的提交,从而维护主分支的完整性。队列中相互冲突的拉取请求会被自动识别和排除,系统会根据需要重新分组。


GitHub 的员工产品主管 Will Smythe 和员工工程师 Lawrence Gripper 在一篇博客文章中详细阐述了 GitHub 使用合并队列的过程。除了提高开发人员的效率之外,采用合并队列的目的还在于提升开发人员在交付工作时的整体体验,防止有问题的拉取请求影响到规模更广的团队,并确保所有服务和仓库的流程一致并且高度自动化。


2021 年年中,GitHub 开始在几个较小的内部仓库中试用合并队列的功能。他们分阶段实现流程的变更,这涉及到大多数开发人员在每天清晨开始一天的主要工作之前的测试和修改恢复。随着时间的推移,到 2023 年,GitHub 系统性地将其大型 monorepo 和所有与生产服务相关联的仓库均迁移到了合并队列系统。


合并队列融入了 GitHub 现有的拉取请求工作流程,开发人员无需学习特定的 ChatOps 命令,也无需使用标签或特定注释语法进行状态管理,这增强了 GitHub 的开发人员体验。开发人员可以轻松地将他们的拉取请求排入队列,如果他们发现自己的更改有任何问题,只需单击一下即可退出队列。


在 GitHub 于 2023 年第三季度左右全面发布合并队列后,我们在 Hacker News 上看到了相关讨论。技术社区积极参与了讨论,一位用户重点介绍了他们几个月来 在 monorepo 拉取请求合并中使用该系统的情况,并对流程的实质性改进提出了肯定。他们还称赞了该系统的快速能力和基于 trunk 的可靠发布,并对该功能背后的团队表示了赞赏。


另一位用户询问合并队列是否会很快出现在 Azure DevOps 中,表示对其可用性很感兴趣。一位参与者在回复中指出 Azure Repos 缺乏更新,并指出其 SSH Git 继续依赖ssh-rsa主机密钥,而实际上 OpenSSH 已废弃该协议数年之久了。


每月,会有 500 多名工程师利用合并队列将 2500 个拉取请求集成到 GitHub 的大型 monorepo 中,这将部署变更的平均时间缩短了 33%。在 GitHub 定期进行的开发人员满意度调查中,一位工程师称赞合并队列是“在 GitHub 的变更部署方面,这是我最满意的生活质量提升之一!”


原文链接


https://www.infoq.com/news/2024/03/github-merge-queues/

2024-04-26 08:005236

评论

发布
暂无评论
发现更多内容

缓存:系统设计中至关重要的一环

互联网工科生

数据库 缓存 缓存技术

隧道LED照明技术见证大国交通发展,三思陶瓷散热技术强势突围

电子信息发烧客

来自前端面试官的吐槽:问CSS、DOM,还招不招人?KPI还要不要?

程序员改bug

编程 程序员 前端 前端面试 前端工程师

事务的实现方法:事务注解和编程式事务

xfgg

Java

直播预告|国产化软硬件升级替换之路:可观测性建设之路

博睿数据

降人工简流程,人工智能助力企业打赢人力成本战

用友BIP

降本增效

蓝戟英特尔锐炫A770评测:多款热门游戏性能提升,XeSS取得丰硕成果

E科讯

开放原子开发者大会——操作系统大会2023成功举办

开放原子开源基金会

开源

海外云手机-如何高效运营多个海外社媒账户?

Ogcloud

社交媒体 社媒

直播预告 | 大模型时代,“应用变了”:政务办公,如何从大模型中巧借力?

京东科技开发者

直播 办公 政务 大模型

PON网络是什么?

小齐写代码

软件测试/测试开发丨常见测试框架类型TDD、DDT、BDD、ATDD

测试人

软件测试 自动化测试 测试开发

软件测试/测试开发丨分层测试体系、单元、UI 、接口、白盒测试

测试人

软件测试 测试开发

商业&技术双轮驱动,企业数智化运营新力量

用友BIP

数智营销

重磅发布|2023年度中国可观测性现状调研报告发布

博睿数据

探索光伏单晶行业成本管理之业务场景分析

用友BIP

成本管理 光伏单晶行业

不黑不吹,低代码开发真的好用吗?

伤感汤姆布利柏

低代码 JNPF

Databend 开源社区上榜 2023 年度 OSCHINA 优秀开源技术团队

Databend

WhatsApp封号的原因以及如何避免?试试海外云手机!

Ogcloud

云计算 外贸管理 whatsapp

中国自动驾驶行业:迈向无限可能

不在线第一只蜗牛

人工智能 自动驾驶 智能汽车

广告精准投放人群的实现:千万用户过滤指定人群

xfgg

Java

lazada商品列表数据接口方法(lazada.item_search)

tbapi

lazada商品详情数据接口 lazada商品数据接口 lazada商品API接口 lazada API接口

上海三思立体育苗系统Vertical X打造“不见光”人工农场

电子信息发烧客

云技术分享 | EC2 之 Windows 忘记密码(二)

亚马逊云科技 (Amazon Web Services)

大数据 Amazon EC2 ebs

通过合并队列改善 GitHub 的部署_后端_Aditya Kulkarni_InfoQ精选文章