Spec
ADDED Requirements¶
Requirement: Deployment triggers only on manual dispatch¶
開発デプロイワークフローは、workflow_dispatchによる手動実行時のみ発火しなければならない(SHALL)。自動トリガー(push, pull_request等)を持ってはならない(SHALL NOT)。
Scenario: 手動実行でデプロイが開始される¶
- WHEN GitHub Actions UIから開発デプロイワークフローを手動実行する
- THEN 開発デプロイワークフローが開始され、指定されたブランチからビルドとデプロイが実行される
Scenario: pushイベントでデプロイが発火しない¶
- WHEN 任意のブランチにコミットがpushされる
- THEN 開発デプロイワークフローは発火しない
Scenario: PR作成時にデプロイが発火しない¶
- WHEN Pull Requestが作成される
- THEN 開発デプロイワークフローは発火しない
Requirement: Supports deployment from any branch¶
開発デプロイワークフローは、任意のブランチからデプロイ可能でなければならない(SHALL)。mainブランチに限定してはならない(SHALL NOT)。
Scenario: feature branchから開発環境にデプロイできる¶
- WHEN feature branchを指定して開発デプロイワークフローを手動実行する
- THEN 指定されたfeature branchのコードがビルドされ、開発環境にデプロイされる
Scenario: mainブランチから開発環境にデプロイできる¶
- WHEN mainブランチを指定して開発デプロイワークフローを手動実行する
- THEN mainブランチのコードがビルドされ、開発環境にデプロイされる
Requirement: Deploys to development environment¶
開発デプロイワークフローは、ビルド成果物をAzure Blob Storageの開発環境(dev)にデプロイしなければならない(SHALL)。本番環境にデプロイしてはならない(SHALL NOT)。
Scenario: ビルド成果物が開発環境にデプロイされる¶
- WHEN 開発デプロイワークフローが実行される
- THEN Viteビルドで生成された
dist/ディレクトリの内容がAzure Blob Storageのdev環境にアップロードされる
Scenario: 環境変数がdev用に設定される¶
- WHEN 開発デプロイワークフローが実行される
- THEN デプロイ先環境は
devとして識別され、開発用の設定が適用される
Scenario: 本番環境には影響しない¶
- WHEN 開発デプロイワークフローが実行される
- THEN 本番環境(prod)のデータやファイルは一切変更されない
Requirement: Concurrency allows cancellation¶
開発デプロイワークフローは、deploy-dev グループでconcurrency制御され、新しい実行時に古い実行をキャンセル可能でなければならない(SHALL)。
Scenario: 新しい手動実行で古い実行がキャンセルされる¶
- WHEN 開発デプロイが実行中に新しい手動実行が開始される
- THEN 実行中の古いデプロイは自動的にキャンセルされ、新しいデプロイが開始される
Scenario: 本番デプロイと干渉しない¶
- WHEN 開発デプロイと本番デプロイが同時に実行される
- THEN 両方のデプロイは互いに干渉せず、それぞれ独立して完了する
Requirement: Uses OIDC authentication¶
開発デプロイワークフローは、Azure Blob Storageへの認証にOIDC(OpenID Connect)を使用しなければならない(SHALL)。SASトークンやアクセスキーを使用してはならない(SHALL NOT)。
Scenario: OIDCでAzure認証が成功する¶
- WHEN 開発デプロイワークフローが実行される
- THEN GitHub ActionsのOIDCプロバイダーを使用してAzureに認証し、デプロイが成功する
Requirement: Provides extension point for E2E tests¶
開発デプロイワークフローは、将来のE2Eテスト統合のための拡張ポイントをコメントで明示しなければならない(SHALL)。
Scenario: E2Eテスト統合のコメントが存在する¶
- WHEN 開発デプロイワークフローの定義を確認する
- THEN E2Eテスト統合の拡張ポイントを示すコメントが含まれている
Scenario: 拡張ポイントはデプロイ後に配置される¶
- WHEN 開発デプロイワークフローの定義を確認する
- THEN E2Eテスト拡張ポイントのコメントは、デプロイステップの後に配置されている