Skip to content

コード品質管理サービス

Codecovを採用

日付: 2025-01-06

ステータス

2025-01-06 承認済み

コンテキスト

ぷよぷよゲームの開発において、継続的な品質管理とコードカバレッジの監視が必要:

  • コードカバレッジの継続的な追跡
  • プルリクエスト時のカバレッジ変化の可視化
  • チーム間でのカバレッジ基準の共有
  • CI/CDパイプラインとの統合
  • 品質低下の早期検出

候補として以下を検討: 1. Codecov 2. Coveralls 3. SonarCloud 4. GitHub内蔵カバレッジ表示 5. セルフホスト解決(SonarQube等)

決定

Codecov を採用する

理由

Codecov:

  • GitHub Actionsとの優れた統合
  • オープンソースプロジェクトでは無料
  • PRコメントでのカバレッジレポート自動生成
  • 詳細なカバレッジ可視化とトレンド分析
  • 業界標準として広く採用
  • カバレッジ閾値設定とCI/CD統合

他の候補を除外した理由:

  • Coveralls: Codecovより機能が限定的
  • SonarCloud: オーバースペック、セットアップ複雑
  • GitHub内蔵: 機能不足、レポート機能限定的
  • セルフホスト: 運用コスト高、小規模プロジェクトには過剰

影響

ポジティブな影響

  • 品質可視化: カバレッジの継続的な監視
  • 自動化: CI/CDでの自動レポート生成
  • 開発体験: PRでの即座なフィードバック
  • 品質基準: 明確なカバレッジ閾値設定
  • チーム共有: カバレッジ情報の共有とレビュー

ネガティブな影響

  • 外部依存: Codecovサービスへの依存
  • 設定複雑性: 初期設定とCI/CD統合
  • 制限: 無料枠での制限(月間使用量)

軽減策

  • 設定ドキュメントの詳細化
  • バックアップとしてローカルカバレッジレポート保持
  • 使用量監視とアラート設定

技術仕様

CI/CD統合

# GitHub Actions設定
- name: Upload test results to Codecov
  if: ${{ !cancelled() }}
  uses: codecov/test-results-action@v1
  with:
    token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload coverage reports to Codecov
  uses: codecov/codecov-action@v5
  with:
    token: ${{ secrets.CODECOV_TOKEN }}

カバレッジ設定

# codecov.yml
coverage:
  status:
    project:
      default:
        target: 85%
        threshold: 2%
    patch:
      default:
        target: 90%
        threshold: 5%

comment:
  layout: "header, diff, files"
  behavior: default
  require_changes: false

ignore:
  - "dist/**/*"
  - "**/*.test.ts"
  - "**/*.config.js"
  - "**/*.config.ts"

カバレッジ目標

種類 目標値 最低値
全体カバレッジ 85% 80%
新規コード 90% 85%
関数カバレッジ 90% 85%
ブランチカバレッジ 80% 75%

実装詳細

1. セットアップ手順

# 1. Codecovアカウント作成・リポジトリ連携
# https://codecov.io/ でGitHub連携

# 2. リポジトリルートにcodecov.yml作成
# 3. GitHub Actions設定追加

2. バッジ設定

# README.mdに追加
[![codecov](https://codecov.io/gh/username/puyo-puyo-game/branch/main/graph/badge.svg)](https://codecov.io/gh/username/puyo-puyo-game)

3. Vitest設定

// vitest.config.ts
export default {
  test: {
    coverage: {
      provider: 'v8',
      reporter: ['text', 'json', 'html', 'lcov'],
      reportsDirectory: 'coverage',
      exclude: [
        'dist/**',
        'node_modules/**',
        '**/*.test.ts',
        '**/*.config.{js,ts}',
        '**/types/**'
      ],
      thresholds: {
        global: {
          statements: 85,
          branches: 80,
          functions: 90,
          lines: 85
        }
      }
    }
  }
}

運用ガイドライン

PRレビュー時のチェック項目

  • カバレッジが閾値を満たしている
  • 新規コードのカバレッジが90%以上
  • カバレッジが大幅に低下していない
  • 重要な処理にテストが存在する

カバレッジ低下時の対応

  1. 軽微な低下(2%未満): 次回PRで改善
  2. 中程度の低下(2-5%): 当該PRで改善必須
  3. 大幅な低下(5%以上): PR承認拒否、改善後再提出

定期的なメンテナンス

  • 月次カバレッジレポートの確認
  • 未テスト領域の特定と改善計画
  • カバレッジ目標の見直し(四半期)

セキュリティ考慮事項

  • Codecov Tokenの適切な管理
  • パブリックリポジトリでのソース露出注意
  • カバレッジレポートの機密情報チェック

コンプライアンス

この決定の遵守は以下により確認:

  • codecov.yml設定ファイルの存在
  • GitHub ActionsでのCodecov統合
  • PRでのカバレッジレポート表示
  • 継続的なカバレッジ監視

備考

  • 決定者: 開発チーム
  • 影響範囲: コード品質管理全体
  • レビュー予定: 3ヶ月後または品質問題発生時