継続的インテグレーション(CI)
CI(Continuous Integration:継続的インテグレーション)は、変更を自動的に統合してテストする、ソフトウェア開発に不可欠なものです。CIは、開発プロセスの早期かつ頻繁に問題を検出することにより、高品質のコードを維持することを可能にします。Ultralytics では、コードベースの品質と完全性を保証するために、さまざまな CI テストを使用しています。
CIアクション
以下は、我々のCI活動の簡単な説明である:
- CI:これは私たちの主要なCIテストであり、ユニットテスト、リンティングチェック、そしてリポジトリによってはより包括的なテストを実行する。
- Dockerデプロイメント:このテストでは、Dockerを使用したプロジェクトのデプロイメントをチェックし、Dockerファイルと関連スクリプトが正しく動作していることを確認します。
- リンク切れ:このテストでは、markdown や HTML ファイルにリンク切れやリンク切れがないか、コードベースをスキャンします。
- CodeQL:CodeQLはGitHubのツールで、コードのセマンティック分析を行い、潜在的なセキュリティ脆弱性の発見や高品質なコードの維持に役立ちます。
- PyPI公開:このテストでは、プロジェクトがエラーなくパッケージ化され、PyPiに公開できるかどうかを確認します。
CI結果
以下は、我々の主要リポジトリに対するこれらのCIテストのステータスを示す表である:
各バッジは、対応する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つのファイルになる。各スライスの大きさと色は、それぞれステートメントの数とカバレッジを表している。
よくあるご質問
Ultralytics における継続的インテグレーション(CI)とは?
Ultralytics における継続的インテグレーション(CI)は、高品質な標準を保証するために、コードの変更を自動的に統合し、テストすることを含みます。私たちのCIセットアップには、単体テストの実行、リンティングチェック、包括的なテストが含まれます。さらに、Dockerのデプロイ、リンク切れのチェック、セキュリティ脆弱性のためのCodeQL分析、ソフトウェアをパッケージ化して配布するためのPyPI公開も行っています。
Ultralytics 、ドキュメントやコードのリンク切れをどのようにチェックするのですか?
Ultralytics は、markdown と HTML ファイル内のリンク切れをチェックする特定の CI アクションを使用しています。これにより、リンク切れやリンク切れをスキャンして特定することで、ドキュメントの完全性を維持し、ユーザーが常に正確で生きたリソースにアクセスできるようにしています。
なぜCodeQL分析はUltralytics' コードベースにとって重要なのか?
CodeQL 分析は、潜在的なセキュリティ脆弱性を発見し、高品質の標準を維持するためにセマンティック コード分析を実行するため、Ultralytics にとって非常に重要です。CodeQL を使用することで、コード内のリスクをプロアクティブに特定して軽減することができ、堅牢で安全なソフトウェア ソリューションを提供するのに役立ちます。
Ultralytics 、デプロイにDockerをどのように活用していますか?
Ultralytics はDockerを採用し、専用のCIアクションを通じてプロジェクトのデプロイを検証しています。このプロセスにより、Dockerファイルと関連スクリプトが正しく機能していることが確認され、スケーラブルで信頼性の高いAIソリューションに不可欠な、一貫性と再現性のあるデプロイ環境が実現します。
Ultralytics におけるPyPI自動公開の役割とは?
自動化されたPyPI公開は、私たちのプロジェクトがエラーなくパッケージ化され、公開されることを保証します。このステップはUltralytics Python パッケージを配布し、ユーザーがPython Package Index (PyPI)を介して簡単に私たちのツールをインストールして使用できるようにするために不可欠です。
Ultralytics 、コード・カバレッジをどのように測定しているのか、そしてなぜそれが重要なのか?
Ultralytics は、Codecov と統合することでコードカバレッジを測定し、テスト中にコードベースがどれだけ実行されたかについての洞察を提供します。高いコードカバレッジは、十分にテストされたコードであることを示し、バグが発生しやすい未テストの領域を発見するのに役立ちます。詳細なコードカバレッジメトリクスは、メインリポジトリに表示されるバッジや、Codecov上で直接確認することができます。