継続的インテグレーション(CI)
CI(Continuous Integration:継続的インテグレーション)は、変更を自動的に統合してテストする、ソフトウェア開発に不可欠なものです。CIは、開発プロセスの早期かつ頻繁に問題を検出することにより、高品質のコードを維持することを可能にします。Ultralytics では、コードベースの品質と完全性を保証するために、さまざまな CI テストを使用しています。
CIアクション
以下は、我々のCI活動の簡単な説明である:
- CI:これは私たちの主要なCIテストであり、ユニットテスト、リンティングチェック、そしてリポジトリによってはより包括的なテストを実行する。
- Dockerデプロイメント:このテストでは、Dockerを使用したプロジェクトのデプロイメントをチェックし、Dockerファイルと関連スクリプトが正しく動作していることを確認します。
- リンク切れ:このテストでは、markdown や HTML ファイルにリンク切れやリンク切れがないか、コードベースをスキャンします。
- CodeQL:CodeQLはGitHubのツールで、コードのセマンティック解析を行い、潜在的なセキュリティ脆弱性の発見や高品質なコードの維持に役立ちます。
- PyPI公開:このテストでは、プロジェクトがエラーなくパッケージ化され、PyPiに公開できるかどうかを確認します。
CI結果
以下は、我々の主要リポジトリに対するこれらのCIテストのステータスを示す表である:
リポジトリ | CI | Dockerのデプロイメント | リンク切れ | コードQL | PyPIとDocsの公開 |
---|---|---|---|---|---|
ヨロフ3 | |||||
yolov5 | |||||
ultralytics | |||||
ハブ | |||||
諸注意 |
各バッジは、対応するCIテストの最後の実行のステータスを示す。 main
ブランチに追加します。テストが失敗した場合、バッジは "failure" ステータスを表示し、合格した場合は "passing" ステータスを表示します。
テストが失敗していることに気づいたら、各リポジトリのGitHub issueで報告していただけると助かります。
CIテストが成功したからといって、すべてが完璧というわけではないことを忘れないでほしい。デプロイや変更をマージする前に、手動でコードをレビューすることを常に推奨する。
コード・カバレッジ
コードカバレッジは、テストが実行されたときに実行されたコードベースの割合を表す指標です。コードカバレッジは、テストがコードに対してどの程度有効であるかを示すものであり、 アプリケーションのテストされていない部分を特定する上で非常に重要です。コードカバレッジの割合が高いと、バグが発生する可能性が低くなります。しかし、コードカバレッジは、不具合がないことを保証するものではないことを理解することが重要です。単に、コードのどの部分がテストによって実行されたかを示すだけです。
codecov.ioとの統合
Ultralytics では、コード・カバレッジを測定・視覚化する人気のオンライン・プラットフォームであるcodecov.io とリポジトリを統合しました。Codecovは、詳細な洞察、コミット間のカバレッジ比較、どの行がカバーされたかを示す視覚的なオーバーレイをコード上に直接表示します。
Codecovと統合することで、エラーが発生しやすい部分やさらなるテストが必要な部分に焦点を当て、コードの品質を維持・向上させることを目指しています。
取材結果
のコード・カバレッジ・ステータスを素早く知るには、次のようにする。 ultralytics
python のバッジとサンバーストのビジュアルを同梱した。 ultralytics
カバレッジの結果。これらの画像は、私たちのテストによってカバーされたコードのパーセンテージを示し、私たちのテスト努力の指標を一目で示すものです。詳細については、 https://codecov.io/github/ultralytics/ultralytics をご覧ください。
リポジトリ | コード・カバレッジ |
---|---|
ultralytics |
下のサンバースト図形では、一番内側の円はプロジェクト全体、中心から離れるにつれてフォルダ、そして最後に1つのファイルになる。各スライスの大きさと色は、それぞれステートメントの数とカバレッジを表している。