|
| 1 | +# .github/CLAUDE.md |
| 2 | + |
| 3 | +CI/CDパイプラインの構成と運用ルール。 |
| 4 | + |
| 5 | +## ブランチ戦略 |
| 6 | + |
| 7 | +| ブランチ | 用途 | デプロイ先 | |
| 8 | +|---|---|---| |
| 9 | +| `main` | 本番環境 | CF `yps-crispy-carnival` + Convex `yps-crispy-carnival` | |
| 10 | +| `develop` | ステージング環境 | CF `dev-yps-crispy-carnival` + Convex `dev-yps-crispy-carnival` | |
| 11 | +| PR → develop | プレビュー環境 | CF `dev-yps-crispy-carnival` (branch: pr-{N}) + Convex preview(一時的) | |
| 12 | + |
| 13 | +## 外部サービス構成 |
| 14 | + |
| 15 | +### CloudFlare Pages |
| 16 | + |
| 17 | +2プロジェクト体制: |
| 18 | +- `yps-crispy-carnival` — 本番専用(mainブランチのみデプロイ) |
| 19 | +- `dev-yps-crispy-carnival` — 開発用(developのメインデプロイ + PRプレビュー) |
| 20 | + |
| 21 | +### Convex |
| 22 | + |
| 23 | +2プロジェクト体制: |
| 24 | +- `yps-crispy-carnival` — 本番DB |
| 25 | +- `dev-yps-crispy-carnival` — 開発DB(永続) + PRプレビュー環境(数日で自動消滅) |
| 26 | + |
| 27 | +### Clerk |
| 28 | + |
| 29 | +1アプリ・2モード: |
| 30 | +- 本番環境 → Clerk本番キー(Production環境シークレット) |
| 31 | +- 開発/プレビュー環境 → Clerk開発キー(Preview環境シークレット) |
| 32 | + |
| 33 | +## GitHub Environments |
| 34 | + |
| 35 | +シークレットはGitHub Environmentsで環境別に管理する。同じキー名で環境ごとに異なる値を設定。 |
| 36 | + |
| 37 | +### Preview 環境(develop + PRプレビューで使用) |
| 38 | + |
| 39 | +| シークレット | 用途 | |
| 40 | +|---|---| |
| 41 | +| `CONVEX_DEPLOY_KEY` | dev Convexプロジェクトのデプロイキー | |
| 42 | +| `VITE_CONVEX_URL` | dev Convexの永続URL | |
| 43 | +| `VITE_CLERK_PUBLISHABLE_KEY` | Clerk開発用Publishableキー | |
| 44 | +| `CLERK_SECRET_KEY` | Clerk開発用シークレットキー | |
| 45 | +| `CLOUDFLARE_API_TOKEN` | CloudFlare APIトークン | |
| 46 | +| `CLOUDFLARE_ACCOUNT_ID` | CloudFlareアカウントID | |
| 47 | + |
| 48 | +### Production 環境(mainで使用) |
| 49 | + |
| 50 | +| シークレット | 用途 | |
| 51 | +|---|---| |
| 52 | +| `CONVEX_DEPLOY_KEY` | prod Convexプロジェクトのデプロイキー | |
| 53 | +| `VITE_CONVEX_URL` | prod Convexの永続URL | |
| 54 | +| `VITE_CLERK_PUBLISHABLE_KEY` | Clerk本番用Publishableキー | |
| 55 | +| `CLERK_SECRET_KEY` | Clerk本番用シークレットキー | |
| 56 | +| `CLOUDFLARE_API_TOKEN` | CloudFlare APIトークン | |
| 57 | +| `CLOUDFLARE_ACCOUNT_ID` | CloudFlareアカウントID | |
| 58 | + |
| 59 | +## ワークフロー一覧 |
| 60 | + |
| 61 | +### デプロイ (`deploy.yml`) |
| 62 | + |
| 63 | +| ジョブ | トリガー | 処理 | |
| 64 | +|---|---|---| |
| 65 | +| `deploy-preview` | PR to develop (open/sync) | Convex preview作成 → seed → ビルド → CF dev プレビューデプロイ | |
| 66 | +| `cleanup-preview` | PR to develop (close) | CF dev プレビュー削除 | |
| 67 | +| `deploy-develop` | push to develop | Convex devデプロイ → ビルド → CF dev メインデプロイ | |
| 68 | +| `deploy-production` | push to main | Convex prodデプロイ → ビルド → CF prod メインデプロイ | |
| 69 | + |
| 70 | +### テスト・品質チェック |
| 71 | + |
| 72 | +| ワークフロー | トリガー | 内容 | |
| 73 | +|---|---|---| |
| 74 | +| `lint.yml` | 全push | Biome lint | |
| 75 | +| `type-check.yml` | 全push | TypeScript型チェック | |
| 76 | +| `test-logic.yml` | 全push | ロジックテスト(sharding 2分割) | |
| 77 | +| `test-ui.yml` | 全push | UIテスト(sharding 2分割、Convex dev使用) | |
| 78 | +| `build.yml` | 全push | ビルド確認(Convex dev使用) | |
| 79 | +| `playwright.yml` | PR to develop | E2Eテスト(Convex preview使用) | |
| 80 | + |
| 81 | +### Storybook (`chromatic_*.yml`) |
| 82 | + |
| 83 | +| ワークフロー | トリガー | 内容 | |
| 84 | +|---|---|---| |
| 85 | +| `chromatic_pr_on_push.yml` | PR push(draft/renovate除外) | 変更コンポーネントのみChromatic公開 | |
| 86 | +| `chromatic_pr_on_ready.yml` | PR ready for review | 同上 | |
| 87 | +| `chromatic_merged.yml` | push to main/develop | ベースライン自動承認 | |
| 88 | + |
| 89 | +## デプロイ順序 |
| 90 | + |
| 91 | +Convex → ビルド → CloudFlare の順で実行する。 |
| 92 | +- Convexを先にデプロイすることで、スキーマ変更がビルド時に反映される |
| 93 | +- ビルド時に `VITE_CONVEX_URL` を環境変数として埋め込む |
| 94 | + |
| 95 | +## 注意事項 |
| 96 | + |
| 97 | +- PRプレビューのConvex環境は数日で自動消滅するため、明示的な削除は不要 |
| 98 | +- `build.yml` と `test-ui.yml` は `npx convex dev` でコード生成を行うため Preview 環境のシークレットが必要 |
| 99 | +- E2Eテストはプレビュー環境(PR)でのみ実施 |
0 commit comments