ストーリー
ビルドステージの標準化
標準ビルドプロセス
すべてのチームが従うべきビルドプロセスの標準を定義します。
標準ビルドフロー:
1. 依存関係の解決(キャッシュ活用)
2. 静的解析(Lintチェック)
3. コンパイル / ビルド
4. ユニットテスト実行
5. アーティファクト生成
6. アーティファクトの署名
ビルド品質ゲート
ビルドが「成功」と見なされるための最低基準を組織で統一します。
| ゲート | 基準 | 強制/推奨 |
|---|---|---|
| Lint | エラー0件 | 強制 |
| コンパイル | エラー0件 | 強制 |
| ユニットテスト | 全テストパス | 強制 |
| テストカバレッジ | 新規コード80%以上 | 推奨(段階的に強制化) |
| ビルド時間 | 10分以内 | 推奨 |
マルチ言語対応
# Reusable Workflow: 言語非依存のビルドステージ
name: Standard Build
on:
workflow_call:
inputs:
language:
type: string
required: true
build-command:
type: string
default: ""
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Runtime
uses: org/setup-runtime@v1
with:
language: ${{ inputs.language }}
- name: Install Dependencies
uses: org/install-deps@v1
with:
language: ${{ inputs.language }}
cache: true
- name: Lint
uses: org/lint@v1
with:
language: ${{ inputs.language }}
- name: Build
run: ${{ inputs.build-command || 'make build' }}
- name: Unit Test
uses: org/unit-test@v1
with:
language: ${{ inputs.language }}
coverage-threshold: 80
テストステージの標準化
テストピラミッドの組織標準
テストの種類と実行タイミングを組織全体で標準化します。
/\
/ \
/ E2E \ ← リリース前のみ
/--------\
/ 統合テスト \ ← PR マージ前
/--------------\
/ ユニットテスト \ ← 全コミット
/------------------\
| テスト種別 | 実行タイミング | 実行時間目標 | 必須/任意 |
|---|---|---|---|
| ユニットテスト | 全コミット | < 5分 | 必須 |
| 統合テスト | PRマージ前 | < 15分 | 必須 |
| E2Eテスト | リリース前 | < 30分 | 必須(クリティカルパスのみ) |
| パフォーマンステスト | リリース前 | < 60分 | 推奨 |
| セキュリティテスト | PRマージ前 | < 10分 | 必須 |
テスト失敗時のポリシー
| シナリオ | ポリシー |
|---|---|
| ユニットテスト失敗 | PRマージをブロック |
| 統合テスト失敗 | PRマージをブロック |
| E2Eテスト失敗 | リリースをブロック(手動オーバーライド可) |
| Flaky テスト検出 | 自動的にリトライ(3回まで)、チームに通知 |
デプロイステージの標準化
デプロイ戦略の標準
組織で使用するデプロイ戦略を標準化します。
| 戦略 | 用途 | リスク | 推奨環境 |
|---|---|---|---|
| Rolling Update | 標準的なデプロイ | 低 | ステージング |
| Blue/Green | ゼロダウンタイムデプロイ | 低 | プロダクション |
| Canary | 段階的リリース | 最低 | プロダクション(重要サービス) |
| Feature Flag | 機能の段階的公開 | 最低 | 全環境 |
標準デプロイフロー
PR Merge → Build → Test → Security Scan
↓
Staging Deploy
↓
Staging Test
↓
Production Approval(手動 or 自動)
↓
Canary Deploy(5%)
↓
メトリクス確認(エラー率、レイテンシ)
↓
段階的ロールアウト
↓
Full Deploy(100%)
ロールバック基準
| 指標 | 閾値 | アクション |
|---|---|---|
| エラー率 | 前バージョンの2倍以上 | 自動ロールバック |
| レイテンシ(p99) | 前バージョンの1.5倍以上 | アラート発報、手動判断 |
| CPU/メモリ使用率 | 90%以上 | アラート発報、手動判断 |
まとめ
| ポイント | 内容 |
|---|---|
| ビルド標準 | 言語非依存のプロセス標準、Reusable Workflowで共通化 |
| テスト標準 | テストピラミッドに基づく実行タイミングと品質ゲート |
| デプロイ標準 | 漸進的デプロイ戦略と自動ロールバック基準 |
チェックリスト
- ビルド品質ゲートの基準を理解した
- テストピラミッドの組織標準を理解した
- デプロイ戦略の標準と自動ロールバック基準を理解した
次のステップへ
次は「アーティファクト管理とバージョニング」です。ビルドされたアーティファクトをどう管理し、どうバージョンを振るかを学びましょう。
推定読了時間: 30分