跳至内容

持续集成 (CI)

持续集成(CI)是软件开发的一个重要方面,它涉及自动集成变更并对其进行测试。CI 使我们能够在开发过程中及早发现问题,从而保持高质量的代码。在Ultralytics ,我们使用各种 CI 测试来确保代码库的质量和完整性。

传播和信息行动

下面简要介绍一下我们的 CI 行动:

  • CI这是我们的主要 CI 测试,包括运行单元测试、内衬检查,有时还会根据版本库的情况进行更全面的测试。
  • Docker 部署该测试使用 Docker 检查项目的部署情况,以确保 Dockerfile 和相关脚本工作正常。
  • 断开链接该测试会扫描代码库,检查markdown 或 HTML 文件中是否存在断开或死链接。
  • CodeQLCodeQL 是 GitHub 提供的一款工具,可对我们的代码进行语义分析,帮助查找潜在的安全漏洞并维护高质量的代码。
  • PyPI 发布该测试检查项目是否可以打包并发布到 PyPi 上,且没有任何错误。

CI 结果

下表显示了我们主要软件源的 CI 测试状态:

存储库 CI Docker 部署 断开的链接 代码QL PyPI 和文档发布
yolov3 YOLOv3 CI 发布 Docker 映像 检查断开的链接 代码QL
yolov5 YOLOv5 CI 发布 Docker 映像 检查断开的链接 代码QL
ultralytics ultralytics CI 发布 Docker 映像 检查断开的链接 代码QL 发布到 PyPI 并部署文档
枢纽 HUB CI 检查断开的链接
文档 检查断开的链接检查域名 页面-构建-部署

每个徽章都显示了相应的 CI 测试最后一次运行的状态。 main 分支。如果测试失败,徽章将显示 "失败 "状态;如果测试通过,徽章将显示 "通过 "状态。

如果您发现测试失败,请通过 GitHub 在相应版本库中的问题进行报告,这将对您大有帮助。

请记住,成功的 CI 测试并不意味着一切都完美无缺。建议在部署或合并变更之前,始终对代码进行手动审查。

代码覆盖范围

代码覆盖率是一个指标,表示测试运行时执行的代码占代码库的百分比。它能让人了解测试对代码的锻炼程度,对于识别应用程序中未经测试的部分至关重要。代码覆盖率越高,出现错误的可能性就越低。但是,我们必须明白,代码覆盖率并不能保证没有缺陷。它只是表明代码的哪些部分已被测试执行。

codecov.io集成

在Ultralytics ,我们将我们的软件源与codecov.io 集成在一起,这是一个用于测量和可视化代码覆盖率的流行在线平台。Codecov 提供详细的洞察力、提交之间的覆盖率比较以及直接在代码上显示覆盖行的可视化覆盖图。

通过与 Codecov 集成,我们将重点关注可能容易出错或需要进一步测试的领域,从而保持和提高代码质量。

覆盖结果

要快速了解 ultralytics python 我们在软件包中加入了徽章和旭日的视觉效果。 ultralytics 覆盖结果。这些图片显示了我们的测试覆盖代码的百分比,为我们的测试工作提供了一目了然的衡量标准。详情请参见 https://codecov.io/github/ultralytics/ultralytics 。

存储库 代码覆盖范围
ultralytics 编码解码器

在下面的旭日图中,最里面的圆圈是整个项目,从中心开始依次是文件夹,最后是单个文件。每个片段的大小和颜色分别代表语句的数量和覆盖范围。

Ultralytics Codecov 图像



创建于 2023-11-12,更新于 2024-04-18
作者:glenn-jocher(5)、Burhan-Q(1)

评论