Skip to main content

継続的インテグレーション (CI)

継続的インテグレーション(CI)はソフトウェア開発に不可欠な側面であり、変更の統合と自動テストを含みます。CIにより、開発プロセスの早期かつ頻繁な段階で問題を検出し、高品質なコードを維持することができます。Ultralyticsでは、コードベースの品質と整合性を確保するために、さまざまなCIテストを利用しています。

CIアクション

当社のCIアクションの概要を以下に説明します:

  • CI: これは当社の主要なCIテストであり、リポジトリに応じてユニットテスト、リンティングチェック、場合によってはより広範なテストを実行します。
  • Docker Deployment: このテストでは、Dockerを使用してプロジェクトのデプロイをチェックし、Dockerfileと関連スクリプトが正しく動作することを確認します。
  • Broken Links: このテストでは、マークダウンやHTMLファイル内の壊れたリンクやリンク切れをスキャンします。
  • CodeQL: CodeQLはGitHubのツールであり、コードのセマンティック解析を実行して、潜在的なセキュリティの脆弱性を発見し、高品質なコードを維持するのに役立ちます。
  • PyPI Publishing: このテストでは、プロジェクトがエラーなくパッケージ化され、PyPIに公開できるかどうかを確認します。

CI Results

主要リポジトリのCIテストのステータスを示す表を以下に示します:

RepositoryCIDocker DeploymentBroken LinksCodeQLPyPI and Docs Publishing
yolov3YOLOv3 CIPublish Docker ImagesCheck Broken linksCodeQL
yolov5YOLOv5 CIPublish Docker ImagesCheck Broken linksCodeQL
ultralyticsultralytics CIPublish Docker ImagesCheck Broken linksCodeQLPublish to PyPI and Deploy Docs Conda Builds
yolo-ios-app (App Store)iOS App CICodeQLPublish iOS App
yolo-flutter-appFlutter App CICodeQLPublish to pub.dev
hubHUB CICheck Broken links
hub-sdkHUB-SDK CICheck Broken linksCodeQLPublish to PyPI
thopUltralytics ActionsCodeQLPublish to PyPI
actionsActions CICodeQLPublish to PyPI
mkdocsUltralytics ActionsCodeQLPublish to PyPI
docsUltralytics ActionsCheck Broken linksCheck Domainspages-build-deployment
handbookUltralytics ActionsCheck Broken linkspages-build-deployment
starsUltralytics ActionsUpdate Analytics
CLIPCLIP CI

各バッジは、それぞれのレポジトリの main ブランチで最後に行われたCIテストのステータスを示しています。テストが失敗した場合は「failing」ステータスが表示され、成功した場合は「passing」ステータスが表示されます。

テストの失敗に気づいた場合は、各リポジトリのGitHub issueで報告していただけると大変助かります。

CIテストが成功したからといって、すべてが完璧であるとは限らないことに留意してください。デプロイやマージの前に、必ず手動でコードを確認することをお勧めします。

Code Coverage

コードカバレッジは、テスト実行時にコードベースがどれだけ実行されたかを示す指標です。テストがコードをどの程度網羅しているかについての洞察を提供し、アプリケーションの未テスト部分を特定するために不可欠です。高いコードカバレッジは、一般的にバグの可能性が低いことと関連しています。ただし、コードカバレッジが欠陥のないことを保証するわけではないという点を理解しておくことが重要です。それは単に、コードのどの部分がテストによって実行されたかを示しているに過ぎません。

Integration with codecov.io

Ultralyticsでは、当社のリポジトリを codecov.io と統合しています。これはコードカバレッジを測定および視覚化するための人気のあるオンラインプラットフォームです。Codecovは詳細な洞察、コミット間のカバレッジ比較、コード上への直接的なビジュアルオーバーレイを提供し、どの行がカバーされているかを示します。

Codecovとの統合により、エラーが発生しやすい領域やさらなるテストが必要な領域に焦点を当てることで、コードの品質を維持・向上させることを目指しています。

Coverage Results

Pythonパッケージのコードカバレッジステータスを簡単に把握するために、ultralytics カバレッジ結果のバッジとサンバースト図を含めています。これらの画像は、テストによってカバーされたコードの割合を示し、テストの取り組みをひと目で把握できる指標を提供します。詳細については、ultralyticsUltralytics Codecov reportをご覧ください。.

RepositoryCode Coverage
ultralyticscodecov

以下のサンバースト図では、最も内側の円がプロジェクト全体であり、中心から離れるにつれてフォルダー、最終的には個別のファイルとなります。各スライスのサイズと色は、それぞれステートメントの数とカバレッジを表しています。

Ultralytics Codecov Image

FAQ

Ultralyticsにおける継続的インテグレーション(CI)とは何ですか?

Ultralyticsにおける継続的インテグレーション(CI)は、コード変更の自動統合とテストを含み、高品質な基準を確保します。当社のCIセットアップには、ユニットテスト、リンティングチェック、および包括的なテストが含まれます。さらに、Docker deployment, broken link checks, CodeQL analysis をセキュリティの脆弱性に対して実行し、PyPI publishing によりソフトウェアのパッケージ化と配布を行います。

Ultralyticsはどのようにドキュメントやコード内のリンク切れをチェックしていますか?

Ultralyticsは、特定のCIアクションを使用してcheck for broken linksをマークダウンおよびHTMLファイル内で行っています。これは、壊れたリンクやリンク切れをスキャンして特定することにより、ドキュメントの整合性を維持し、ユーザーが常に正確で最新のリソースにアクセスできるようにするのに役立ちます。

なぜCodeQL解析はUltralyticsのコードベースにとって重要ですか?

CodeQL analysis は、潜在的なセキュリティの脆弱性を発見し、高い品質基準を維持するためにセマンティックなコード解析を実行するため、Ultralyticsにとって極めて重要です。CodeQLにより、コード内のリスクを事前に特定し軽減できるため、堅牢で安全なsoftware solutions.

を提供できるようになります。

UltralyticsはどのようにDockerをデプロイに利用していますか?UltralyticsはDockerを採用し、専用のCIアクションを通じてプロジェクトのデプロイを検証します。このプロセスにより、Dockerfile and associated scripts

が正しく機能していることが確認され、スケーラブルで信頼性の高いAIソリューションに不可欠な、一貫した再現性のあるデプロイ環境が実現します。

Ultralyticsにおける自動PyPI公開の役割は何ですか?PyPI publishing自動化された Python Package Index (PyPI).

により、プロジェクトをエラーなくパッケージ化して公開できます。このステップは、UltralyticsのPythonパッケージを配布するために不可欠であり、ユーザーが

を介して簡単にツールをインストールし使用できるようにします。Ultralyticsはどのようにコードカバレッジを測定し、なぜそれが重要ですか?Ultralyticsは Ultralyticsはどのようにコードカバレッジを測定し、なぜそれが重要ですか?.

コメント