Ultralytics YOLO27:
Get Started

持续集成(CI)#

持续集成(CI)是软件开发的重要环节,包括集成更改并自动运行测试。CI 能够及早、频繁地发现问题,帮助我们维持高质量的代码。在 Ultralytics,我们通过各种 CI 测试确保代码库的质量和完整性。

CI 操作#

以下是我们 CI 操作的简要说明:

  • CI: 这是我们的主要 CI 测试,用于运行单元测试;根据代码仓库的不同,还会运行更全面的测试,例如导出检查和基准测试。
  • Docker 部署: 此测试会检查使用 Docker 部署项目的情况,以确保 Dockerfile 和相关脚本正常工作。
  • 失效链接: 此测试会扫描代码库,查找 Markdown 或 HTML 文件中的失效或无法访问的链接。
  • CodeQL: CodeQL 是 GitHub 提供的工具,可对我们的代码进行语义分析,帮助查找潜在的安全漏洞并维持代码质量。
  • PyPI 发布: 此工作流会构建软件包,并将每个新版本发布到 PyPI。

CI 结果#

下表显示了这些 CI 测试在我们主要代码仓库中的状态:

每个徽章都显示相应仓库中 main 分支上对应 CI 测试最近一次运行的状态。如果测试失败,徽章会显示“失败”状态;如果测试通过,徽章会显示“通过”状态。

如果你发现测试失败,欢迎通过相应仓库中的 GitHub issue 报告,这会对我们有很大帮助。

请记住,CI 测试成功并不代表一切都完美无缺。我们始终建议你在部署或合并更改之前手动审查代码。

代码覆盖率#

代码覆盖率是一项指标,表示运行测试时执行的代码占代码库的百分比。它能帮助你了解测试对代码的覆盖程度,对于识别应用中未经测试的部分至关重要。较高的代码覆盖率通常意味着出现错误的可能性较低。不过,你需要明白,代码覆盖率并不能保证没有缺陷,它只能指出测试执行过哪些代码。

与 codecov.io 集成#

在 Ultralytics,我们将仓库与热门的在线代码覆盖率测量和可视化平台 codecov.io 集成。Codecov 可提供详细分析、不同提交之间的覆盖率对比,以及直接叠加在代码上的可视化标记,指出哪些代码行已被覆盖。

通过与 Codecov 集成,我们希望重点关注容易出错或需要进一步测试的部分,以维护并提升代码质量。

覆盖率结果#

为了让你快速了解各仓库的代码覆盖率状态,我们为每个跟踪的项目添加了 Codecov 徽章和旭日图预览。每张旭日图最内侧的圆代表整个项目;从中心向外依次是文件夹,最后是单个文件。每个扇区的大小和颜色分别表示语句数量和覆盖率。详情请访问 Ultralytics Codecov 组织页面。

常见问题#

  • Ultralytics 中的持续集成 (CI) 会自动集成并测试代码更改,以确保达到高质量标准。我们的 CI 设置包括运行单元测试、导出测试和基准测试。此外,我们还会执行 Docker 部署、失效链接检查、用于发现安全漏洞的 CodeQL 分析,以及用于打包和分发软件的 PyPI 发布。

  • CodeQL 分析对 Ultralytics 至关重要,因为它能够通过语义代码分析发现潜在的安全漏洞,并维持高质量标准。借助 CodeQL,我们可以主动识别并降低代码中的风险,帮助我们交付稳健、安全的软件解决方案。

  • Ultralytics 通过专用 CI 操作使用 Docker 验证项目部署。这个流程可以确保我们的 Dockerfile 和相关脚本正常运行,从而实现一致且可复现的部署环境,这对打造可扩展、可靠的 AI 解决方案至关重要。

  • 自动化的 PyPI 发布会构建软件包并发布每个新版本,无需手动操作。这一步对于分发 Ultralytics 的 Python 软件包至关重要,用户可以通过 Python 软件包索引 (PyPI)轻松安装和使用我们的工具。

  • Ultralytics 通过与 Codecov 集成来衡量代码覆盖率,从而了解测试执行了代码库中的哪些部分。较高的代码覆盖率可能说明代码经过了充分测试,也有助于发现可能容易出现错误的未测试区域。你可以通过主要仓库中显示的徽章或直接访问 Codecov查看详细的代码覆盖率指标。

评论