5.5 KiB
5.5 KiB
CI/CDパイプライン実装計画
📋 概要
TradingAgentsプロジェクトのCI/CDパイプラインを構築し、コード品質の自動化と継続的デリバリーを実現します。
🎯 目標
- 品質保証: 自動テスト、リンティング、型チェックの実施
- 継続的統合: コード変更時の自動ビルドとテスト
- セキュリティ: APIキーや機密情報の適切な管理
- ドキュメント: 自動生成とデプロイ
🏗️ アーキテクチャ
技術スタック
- CI/CDプラットフォーム: GitHub Actions
- テストフレームワーク: pytest
- コード品質ツール:
- Black (フォーマッター)
- Ruff (リンター)
- mypy (型チェッカー)
- カバレッジ: pytest-cov
- セキュリティスキャン: bandit
📝 実装タスク
フェーズ1: テスト基盤の構築
- pytestのセットアップ
- テストディレクトリ構造の作成
- 基本的なユニットテストの実装
- テストカバレッジの設定
フェーズ2: GitHub Actionsワークフロー
- 基本的なCI/CDワークフローの作成
- プルリクエスト時の自動テスト
- mainブランチへのマージ時の品質チェック
- 依存関係のキャッシング
フェーズ3: コード品質の自動化
- リンティング(Ruff)の統合
- フォーマッティング(Black)の統合
- 型チェック(mypy)の統合
- コードカバレッジレポート
フェーズ4: セキュリティと最適化
- セキュリティスキャンの実装
- APIキーの安全な管理
- ワークフロー最適化
- 並列実行の設定
🔧 ワークフロー設計
1. プルリクエストワークフロー (pr.yml)
トリガー: プルリクエストのオープン/更新
ジョブ:
- コード品質チェック (Black, Ruff, mypy)
- ユニットテスト実行
- テストカバレッジレポート
- セキュリティスキャン
2. メインブランチワークフロー (main.yml)
トリガー: mainブランチへのプッシュ
ジョブ:
- 完全なテストスイート実行
- 統合テスト
- パフォーマンステスト(オプション)
- ドキュメント生成
3. リリースワークフロー (release.yml)
トリガー: タグのプッシュ
ジョブ:
- バージョン管理
- パッケージビルド
- PyPIへの公開(将来的に)
- リリースノート生成
📂 ディレクトリ構造
TradingAgents/
├── .github/
│ └── workflows/
│ ├── pr.yml # PRワークフロー
│ ├── main.yml # メインブランチワークフロー
│ └── release.yml # リリースワークフロー
├── tests/
│ ├── __init__.py
│ ├── conftest.py # pytest設定
│ ├── unit/ # ユニットテスト
│ │ ├── agents/
│ │ ├── dataflows/
│ │ └── graph/
│ ├── integration/ # 統合テスト
│ └── fixtures/ # テストデータ
├── .coveragerc # カバレッジ設定
├── pytest.ini # pytest設定
├── pyproject.toml # プロジェクト設定
└── tox.ini # 複数環境テスト設定
🔐 セキュリティ考慮事項
-
APIキー管理:
- GitHub Secretsを使用
- 環境変数経由でのアクセス
- テスト用モックの実装
-
依存関係管理:
- Dependabotの有効化
- 脆弱性スキャン
- 定期的な更新
-
コードセキュリティ:
- banditによる静的解析
- セキュリティポリシーの定義
📊 成功指標
- テストカバレッジ: 70%以上
- ビルド時間: 5分以内
- コード品質スコア: A評価
- セキュリティ脆弱性: 0件(高・中リスク)
🚀 実装ステップ
ステップ1: テスト環境のセットアップ(Day 1)
# テスト関連パッケージのインストール
pip install pytest pytest-cov pytest-mock pytest-asyncio
# テストディレクトリの作成
mkdir -p tests/unit/agents tests/unit/dataflows tests/unit/graph
mkdir -p tests/integration tests/fixtures
ステップ2: 基本的なテストの作成(Day 1-2)
- エージェントクラスのユニットテスト
- データフロー関数のテスト
- グラフロジックのテスト
ステップ3: GitHub Actionsワークフローの実装(Day 2-3)
- 基本的なCIワークフロー作成
- 段階的な機能追加
- 動作確認とデバッグ
ステップ4: 最適化と文書化(Day 3-4)
- パフォーマンス最適化
- ドキュメント更新
- チーム向けガイドライン作成
📚 参考資料
✅ 完了基準
- すべてのテストが自動実行される
- コード品質チェックが自動化される
- PRマージ前の品質ゲートが機能する
- ドキュメントが最新化される
- チームメンバーが使用方法を理解している
この計画は段階的に実装され、プロジェクトのニーズに応じて調整されます。