コード品質管理サービス¶
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に追加
[](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%以上
- カバレッジが大幅に低下していない
- 重要な処理にテストが存在する
カバレッジ低下時の対応¶
- 軽微な低下(2%未満): 次回PRで改善
- 中程度の低下(2-5%): 当該PRで改善必須
- 大幅な低下(5%以上): PR承認拒否、改善後再提出
定期的なメンテナンス¶
- 月次カバレッジレポートの確認
- 未テスト領域の特定と改善計画
- カバレッジ目標の見直し(四半期)
セキュリティ考慮事項¶
- Codecov Tokenの適切な管理
- パブリックリポジトリでのソース露出注意
- カバレッジレポートの機密情報チェック
コンプライアンス¶
この決定の遵守は以下により確認:
- codecov.yml設定ファイルの存在
- GitHub ActionsでのCodecov統合
- PRでのカバレッジレポート表示
- 継続的なカバレッジ監視
備考¶
- 決定者: 開発チーム
- 影響範囲: コード品質管理全体
- レビュー予定: 3ヶ月後または品質問題発生時