CI/CD

継続的インテグレーション / デリバリー

GitHub Actions + Cloudflare Pages

人間の手ではなく、仕組みで信頼を作る。コードをプッシュするだけで自動デプロイ。

CI/CDパイプライン

Push から Deploy まで自動実行

Push

コード変更

Lint / Type

静的解析

Test

自動テスト

Security

脆弱性スキャン

Build

ビルド

Deploy

デプロイ

全ステップ自動実行

手動作業ゼロ

失敗時はSlack通知

即座に検知

ロールバック可能

1クリックで復旧

環境構成

3環境によるステージゲート

Development

feature/*

Staging

develop

Production

main

承認必須
環境ブランチURL用途自動デプロイ承認
Developmentfeature/*dev.printcart.pages.dev開発者個人の動作確認
Stagingdevelopstaging.printcart.pages.devQA・受け入れテスト
Productionmainprintcart.com本番環境

ブランチ戦略

Git Flow ベース

ブランチフロー

main

本番リリース

承認必須、直接push禁止

develop

開発統合

CI成功必須

feature/*

機能開発

なし

hotfix/*

緊急修正

承認必須(短縮)

release/*

リリース準備

CI成功必須
承認フロー

通常リリース(feature → develop → main)

開発者レビュアー1名リリース承認者

緊急修正(hotfix → main)

開発者リリース承認者

※ レビュー省略可(事後レビュー必須)

デプロイ戦略

ゼロダウンタイムリリース

Cloudflare Pages(採用)
デプロイ方式Atomic Deploy(原子的デプロイ)
切り替え即時(DNS不要)
ロールバック過去デプロイを1クリックで復元
プレビューPR毎にプレビューURL自動生成

Blue-Green相当の安全性をCloudflareが自動提供

デプロイフロー
1

PR作成

プレビューURL自動生成

2

CI実行

Lint/Test/Security

3

レビュー承認

コードレビュー + 動作確認

4

マージ

Staging自動デプロイ

5

リリース承認

手動トリガー

6

本番デプロイ

即時反映(ロールバック可能)

ロールバック手順

障害発生時の復旧

ロールバック手順

1. 障害検知

Sentry/Cloudflare Analyticsでエラー率上昇を検知

2. 影響範囲確認

Sentryで影響ユーザー数・エラー箇所を特定

3. ロールバック実行

Cloudflare Dashboard → Deployments → 前バージョンを「Rollback」

所要時間: 30秒以内

4. 復旧確認

エラー率正常化を確認、Slackで報告

復旧時間目標

検知〜判断

5分

ロールバック

30秒

合計 RTO: 10分以内

ロールバック判断基準
エラー率 > 5%即座にロールバック
P95レイテンシ > 3秒5分継続で判断
決済エラー発生即座にロールバック
UI崩れ報告影響範囲確認後判断

セキュリティ(GHAS)

GitHub Advanced Security

CodeQL

静的解析(SAST)

  • SQLインジェクション検出
  • XSS脆弱性検出
  • PRごとに自動実行
Secret Scanning

シークレット漏洩検出

  • 200+パターン対応
  • APIキー・トークン検出
  • リアルタイム監視
Push Protection

コミット時ブロック

  • シークレット含むpush拒否
  • 開発者へ即時通知
  • bypass監査ログ
Dependency Review

依存関係監査

  • 脆弱性でPR失敗
  • ライセンス違反検出
  • マージ前に必須実行
Trivy

コンテナスキャン

  • Dockerイメージ脆弱性検出
  • OSパッケージ脆弱性検出
  • CRITICAL/HIGHで失敗
Dependabot

依存関係更新

  • セキュリティパッチ自動PR
  • 週次更新チェック
  • 自動マージ設定可能

PRプレビュー

レビュー効率化

自動プレビュー環境

PR作成時にプレビューURL自動生成
PRコメントにURL自動投稿
デザイナー/PMがコードなしで確認可能
マージ後は自動削除

PR #123 Preview

https://abc123.printcart.pages.dev

各PRに固有のプレビューURLが発行され、本番環境に影響なくレビュー可能

CI/CDの特長

自動デプロイ

push → 本番まで人手不要

セキュリティ統合

6種のスキャン自動実行

即時ロールバック

30秒で前バージョンに復旧

PRプレビュー

レビュー効率3倍

承認フロー

本番は必ず承認が必要

RTO 10分以内

障害発生から復旧まで