# CI/CDパイプライン実装計画 ## 📋 概要 TradingAgentsプロジェクトのCI/CDパイプラインを構築し、コード品質の自動化と継続的デリバリーを実現します。 ## 🎯 目標 1. **品質保証**: 自動テスト、リンティング、型チェックの実施 2. **継続的統合**: コード変更時の自動ビルドとテスト 3. **セキュリティ**: APIキーや機密情報の適切な管理 4. **ドキュメント**: 自動生成とデプロイ ## 🏗️ アーキテクチャ ### 技術スタック - **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`) ```yaml トリガー: プルリクエストのオープン/更新 ジョブ: - コード品質チェック (Black, Ruff, mypy) - ユニットテスト実行 - テストカバレッジレポート - セキュリティスキャン ``` ### 2. メインブランチワークフロー (`main.yml`) ```yaml トリガー: mainブランチへのプッシュ ジョブ: - 完全なテストスイート実行 - 統合テスト - パフォーマンステスト(オプション) - ドキュメント生成 ``` ### 3. リリースワークフロー (`release.yml`) ```yaml トリガー: タグのプッシュ ジョブ: - バージョン管理 - パッケージビルド - 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 # 複数環境テスト設定 ``` ## 🔐 セキュリティ考慮事項 1. **APIキー管理**: - GitHub Secretsを使用 - 環境変数経由でのアクセス - テスト用モックの実装 2. **依存関係管理**: - Dependabotの有効化 - 脆弱性スキャン - 定期的な更新 3. **コードセキュリティ**: - banditによる静的解析 - セキュリティポリシーの定義 ## 📊 成功指標 - **テストカバレッジ**: 70%以上 - **ビルド時間**: 5分以内 - **コード品質スコア**: A評価 - **セキュリティ脆弱性**: 0件(高・中リスク) ## 🚀 実装ステップ ### ステップ1: テスト環境のセットアップ(Day 1) ```bash # テスト関連パッケージのインストール 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) - パフォーマンス最適化 - ドキュメント更新 - チーム向けガイドライン作成 ## 📚 参考資料 - [GitHub Actions Documentation](https://docs.github.com/en/actions) - [pytest Documentation](https://docs.pytest.org/) - [Python CI/CD Best Practices](https://realpython.com/python-continuous-integration/) ## ✅ 完了基準 - [ ] すべてのテストが自動実行される - [ ] コード品質チェックが自動化される - [ ] PRマージ前の品質ゲートが機能する - [ ] ドキュメントが最新化される - [ ] チームメンバーが使用方法を理解している --- *この計画は段階的に実装され、プロジェクトのニーズに応じて調整されます。*