CI/CD & デプロイメントアーキテクチャスキル
このスキルは、AIエージェントやコントリビューターがGitHub ActionsのCI/CDパイプライン、コンテナイメージの公開、自動デプロイメントを管理するためのガイドです。
1. ローカルブランチファーストの開発とコミット頻度
[!IMPORTANT] 最初にローカルブランチを作成し、頻繁にコミットする: 必ず
mainから専用のローカルブランチを作成してください:git switch -c <developer-or-agent>/main/<feature-name>論理的なマイルストーンごとにコミットします(「コミットが多いほど説明の手間が減る」)。決して
mainに直接コミットしないでください。
2. マルチ環境CI/CDパイプライン
jobs:
backend-test:
name: バックエンド テスト & ビルド
steps:
- uses: actions/setup-go@v5
- run: go test -v -race ./...
- run: go build -v ./...
service-test:
name: Pythonサービス テスト & Lint
steps:
- uses: astral-sh/setup-uv@v5
- run: uv sync
- run: uv run pytest
frontend-test:
name: フロントエンド Lint & ビルド
steps:
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
- run: pnpm install --frozen-lockfile
- run: pnpm run lint
- run: pnpm run build
3. ローカルCIミラーリング実行手順
コミット前に変更がCIを通過することを保証するには:
# 1. pre-commitゲートを実行(CIチェックの正確なミラー)
make pre-commit
# 2. または、ローカルで個別のCIジョブを実行:
# Goバックエンド:
go test -v -race ./... && go build -v ./...
# Pythonサービス:
uv run pytest
# フロントエンド:
pnpm run lint && pnpm run build
4. シークレット vs 集中設定
- シークレット:
.env/ CIシークレットおよび実行時ダッシュボードで厳密に定義(DATABASE_URL、API_KEY、JWT_SECRET)。 - 運用デフォルト値: コードモジュール内に集中管理。
- CIワークフローYAMLやGitコミットにシークレットをハードコードしないでください。