概要
Codecovを使用する際によくあるタスクや設定について、簡単なガイドを作成しました。
{プロジェクトルート}/codecov.yml
ファイルを調整することで実現できます。
設定変更時はバリデーションエンドポイントで設定の妥当性を検証することをおすすめします(実際、ci 上(GitHub Actions など)でうまく動かない原因はここで落とせます)
CodecovのYAMLを変更する際は、新しいYAMLを以下のコマンドを使用して検証してください。
curl -X POST --data-binary @codecov.yml https://codecov.io/validate
設定事例
プルリクエストにおけるカバレッジのブロック状態を設定する
coverage:
status:
project:
default:
target: 80% # 目標(must)数値
threshold: 1% # 許容比率(この例だと 79% まで許容)
各プルリクエストで全体のカバレッジを増やす
coverage:
status:
project:
default:
target: auto # 前回のコミットと比較
カバレッジ目標を緩和する
coverage:
status:
project:
default:
target: auto
# テストの不安定さに応じて調整
# 前回の基本コミットからの10%の低下を許容
threshold: 10%
すべてのコードをカバーする(あまり現実的ではない)
coverage:
status:
patch:
default:
target: 100%
ブロックしない状況で、ステータスチェックを設定する
coverage:
status:
project:
default:
informational: true
patch:
default:
informational: true
プルリクエストコメントの形式を変更する
comment:
layout: "diff, flags, files" # 形式を変更するにはここから項目を削除
カバレッジの変更時のみコメントを表示する
comment:
require_changes: true
CIテストの失敗時にカバレッジを表示する
codecov:
require_ci_to_pass: false
すべてのCIステータスが完了しなくてもカバレッジ通知を送信する
codecov:
notify:
wait_for_ci: false
カバレッジを分離する
flags:
projectA:
paths:
- src/projectA/
projectB:
paths:
- src/projectB/
# フラグに基づいてステータスチェックを表示するには
coverage:
status:
project:
default:
flags:
- projectA
- projectB
projectA:
flags:
- projectA
projectB:
flags:
- projectB
各カバレッジレポートにフラグを割り当てる必要があります。同じレポートに複数のフラグを使用することは強くお勧めしません。代わりに、レポートを2回アップロードしてください。
./codecov -f coverage.xml -F projectA
./codecov -f coverage.xml -F projectB
プルリクエストのコメントを無効にする
comment: false
このガイドは、Codecovの一般的な設定を簡単に適用するためにメモしたレベルのものです。より詳細な情報や追加の設定については、Codecovの公式ドキュメントを参照してください。