LoginSignup
0
0

Codecovの一般的な設定

Posted at

概要

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の公式ドキュメントを参照してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0