Drupal 核心的 GitLab CI 测试现在比 DrupalCI 快五倍。

跨境快讯 2024-01-31 18:04:36 woniu
2
导读:虽然Drupal在五年前将其代码托管转移到GitLab,但将测试从我们自己开发的DrupalCI转移到GitLab CI是一个渐进的过程。我们在这篇文章中宣布了几个重要的变化和未来计划,这些变化和未来计划会影响所有在 Drupal.org 上编写代码的开发人员。 贡献的项目现在应该使用 Gitlab CI

截至 2023 年 7 月,贡献的项目已完全具备采用 GitLab CI 的能力,并且应该这样做。

一旦Drupal核心和安全团队的功能被GitLab CI完全取代,DrupalCI系统将退役。虽然我们还没有具体的日期,但它将在一年内停用。

测试核心现在快五倍

我们一直在调整 GitLab CI 配置,以便更好地进行核心测试。GitLab CI 上的核心测试比 Drupal CI 更现代,速度更快。Drupal CI 核心运行只需 50 多分钟,但 GitLab CI 可以在 10 分钟内运行相同的测试套件!

我们是怎么做到的?
您无需了解如何实现此目标的内部详细信息即可从中受益,但如果您有兴趣,这里有一个高级摘要:

将 MySQL 和文件系统挂载在虚拟硬盘上,以便更快地访问。
为不同的 linting 类型和测试套件引入了不同的作业,以便它们同时启动。
使用 'needs' 关键字指定显式作业依赖项,以便可以更快启动。
通过 在每个运行器上同时运行测试。.sh
使用并行测试运行器进行功能测试,允许同时执行 100 多个测试。
已识别最慢的测试并用 标记它们。然后,我们在每次运行开始时和运行器之间分配最慢的作业。这意味着它们会尽早完成,而不是在所有较短的作业完成后继续运行。@group #slow
将单个测试类需要六分钟以上的最慢测试重构为多个类,以便这些类可以并行运行。

核心提交测试和计划测试现在已移至 GitLab CI

由于性能的改进,我们将几个测试设置从DrupalCI转移到GitLab CI。Drupal 核心在每次提交后都会在 GitLab CI 上自动测试,并按照设定的时间表进行测试,以对可能的回归发出早期警告。

立即利用核心合并请求中的快速测试运行和早期反馈!
在 GitLab 中针对核心问题提交的合并请求将自动受益于所有这些改进。当不符合编码标准或发生测试失败时,GitLab UI 可以更轻松地查看管道的哪些部分失败以及原因,并在完成后立即向 GitLab 报告。无需再等待整个管道完成!

如果在将 GitLab CI 支持添加到核心之前已有合并请求,请将其重新定基在 11.x 分支上以自动获得支持。

仅测试运行现在在 GitLab CI 中自动执行

为了证明错误修复的附加测试覆盖率按预期工作,我们通常需要一个补丁或合并请求,该请求仅包含添加的测试覆盖率(没有错误修复的代码)。这意味着每个问题需要两个补丁或两个合并请求。现在,我们有一个自动化解决方案来仅运行更改的测试。因此,在大多数情况下,将不再需要单独的合并请求!如果使用修补程序的问题缺少仅测试修补程序,则该修补程序将被标记为“需要工作”,并且必须转换为合并请求(以便仅测试的 CI 作业可以运行,而无需手动创建仅测试修补程序)。

代码质量检查现在已集成到合并请求用户界面中

开发人员体验的另一个主要改进是,代码质量检查现在已集成到合并请求用户界面中,报告与测试结果分开显示,甚至在代码审查界面中内联显示。
当在外部测试中遇到故障时,将重新运行 GitLab CI 作业
DrupalCI 的另一个改进是,如果在测试之外出现故障,例如超时、调度问题等,GitLab CI 作业将自动重新运行(最多 2 次重试)。

感谢

所有这些改进都归功于Moshe Weitzman,Lee Rowlands,Kirill Roskolii,Chris Burgess,Nick Schuch,Fran Garcia-Linares,Luhur Abdi Rizal,Michael Strelan,Alex Pott,Nathaniel Catchpole,Dave Long,Björn Brala,Neil Drumm,Wim Leers,Juraj Nemec,Jonathan Smith和Drupal协会的大量工作,优先考虑开发人员工具的改进。这对开发人员的工作效率来说将是一个难以置信的好处!

未来里程碑

自动化性能测试即将到来
OpenTelemetry应用程序性能监控功能最近被添加到Drupal核心中。需要更多的基础设施来收集这些数据,包括 GitLab CI 配置更新,以便按计划运行性能测试。

内部安全团队测试将移动到专用 GitLab.com 镜像
DrupalCI仍然用于私下测试安全版本的核心补丁。我们计划将其移至私有 GitLab.com 镜像中,其中包含在 GitLab.com 上私下提交的问题。

Drupal 7 核心和贡献的项目将迁移到 GitLab CI

我们目前正在为 Gitlab CI 准备 Drupal 7 核心,并为 Drupal 7 贡献的项目准备 CI 模板。GitLab CI 上的 Drupal 7 测试运行时间缩短到三分钟,并包括 PHP 兼容性检查,这些检查以前没有在 Drupal 7 上运行。一旦这些确定,只有GitLab CI将用于测试Drupal 7。


原文链接:https://www.drupal.org/about/core/blog/drupal-cores-gitlab-ci-testing-is-now-five-times-faster-than-drupalci

版权声明: woniu 发表于 2024-01-31 18:04:36。
转载请注明: Drupal 核心的 GitLab CI 测试现在比 DrupalCI 快五倍。 | 跨境湾

相关文章