コンテンツにスキップ

Spec

ADDED Requirements

Requirement: main ブランチへの push でトリガー

システムは main ブランチへの push 時に本番環境デプロイワークフローを自動的に実行しなければならない。

Scenario: main ブランチへの push

  • WHEN main ブランチにコードが push される
  • THEN 本番環境デプロイワークフローが自動的にトリガーされる

Scenario: 他のブランチへの push

  • WHEN main 以外のブランチにコードが push される
  • THEN 本番環境デプロイワークフローはトリガーされない

Requirement: CI ステップの成功確認

システムは Lint、テスト、ビルドがすべて成功した場合のみデプロイを実行しなければならない。

Scenario: CI ステップすべて成功

  • WHEN Lint、テスト、ビルドがすべて成功する
  • THEN 本番環境へのデプロイが実行される

Scenario: CI ステップのいずれかが失敗

  • WHEN Lint、テスト、またはビルドのいずれかが失敗する
  • THEN 本番環境へのデプロイは実行されない

Requirement: OIDC 認証による Azure 接続

システムは OIDC 認証を使用して Azure に安全に接続しなければならない。

Scenario: OIDC 認証成功

  • WHEN GitHub Actions から Azure への認証を行う
  • THEN OIDC トークンを使用して認証が成功する

Scenario: OIDC 認証失敗

  • WHEN OIDC 認証情報が不正または期限切れ
  • THEN 認証が失敗し、デプロイが停止する

Requirement: Azure Blob Storage へのデプロイ

システムはビルド成果物を本番環境の Azure Blob Storage にアップロードしなければならない。

Scenario: デプロイ成功

  • WHEN ビルド成果物が dist ディレクトリに存在する
  • THEN すべてのファイルが本番環境のストレージアカウントにアップロードされる

Scenario: デプロイ失敗

  • WHEN ストレージアカウントへのアクセスに失敗する
  • THEN デプロイが失敗し、エラーが報告される

Requirement: 本番環境での E2E テスト除外

システムは本番環境デプロイ後に E2E テストを実行してはならない。

Scenario: 本番環境デプロイ後

  • WHEN 本番環境へのデプロイが完了する
  • THEN E2E テストは実行されない

Scenario: 本番環境へのテストトラフィック回避

  • WHEN デプロイワークフローが実行される
  • THEN 本番環境に対するテストトラフィックが発生しない