Spec
ADDED Requirements¶
Requirement: Production deployment uses shared application deployment workflow¶
本番デプロイ機能は、devデプロイと同一のアプリデプロイ実体を共有し、環境値とトリガー条件のみを切り替えて実行されなければならない(SHALL)。CIワークフロー内に本番デプロイ処理を直接定義してはならない(SHALL NOT)。
Scenario: 開発/本番デプロイが共通実体で管理される¶
- WHEN アプリデプロイワークフロー定義を確認する
- THEN 本番デプロイと開発デプロイは同一ワークフロー実体内で管理され、環境値のみが分岐している
Scenario: CI定義に本番デプロイ処理が混在しない¶
- WHEN CIワークフロー定義を確認する
- THEN 本番環境(prod)へのデプロイジョブは定義されていない
Requirement: Production deployment reuses shared setup contract¶
本番デプロイでビルドまたは成果物検証を行う場合、Node.js、pnpm、uvの準備はCIと同じ共通セットアップ契約を再利用しなければならない(SHALL)。
Scenario: 本番デプロイが共通セットアップを参照する¶
- WHEN 本番デプロイワークフロー内でビルド関連ステップを確認する
- THEN Node.js、pnpm、uvのセットアップは共通化された定義を利用している
Scenario: 共通セットアップ更新が本番デプロイにも反映される¶
- WHEN 共通セットアップ定義の更新を適用する
- THEN 本番デプロイのビルド関連ステップにも同じ更新が反映される
Requirement: Production deployment requires successful CI¶
本番デプロイワークフローは、同一コミットに対する ci-workflow(lint/test/build)が成功している場合のみデプロイ処理を開始しなければならない(SHALL)。CIが失敗または未完了の場合、デプロイ処理を開始してはならない(SHALL NOT)。
Scenario: CI成功後に本番デプロイが開始される¶
- WHEN mainブランチ上の対象コミットに対する
ci-workflowが成功している - THEN 本番デプロイワークフローはデプロイ処理を開始する
Scenario: CI未成功時に本番デプロイが中断される¶
- WHEN mainブランチ上の対象コミットに対する
ci-workflowが失敗または未完了である - THEN 本番デプロイワークフローはデプロイ処理を開始せず、失敗として終了する
MODIFIED Requirements¶
Requirement: No test or lint jobs in deployment workflow¶
本番デプロイワークフローは、test/lintジョブを含んではならない(SHALL NOT)。これらはCIワークフローの責務であり、デプロイ前提としてCI成功を参照しなければならない(SHALL)。
Scenario: デプロイワークフローにtest/lintジョブが存在しない¶
- WHEN 本番デプロイワークフローの定義を確認する
- THEN test, lintジョブは定義されておらず、デプロイジョブのみが存在する
Scenario: CI成功後にデプロイが開始される¶
- WHEN mainブランチへのpushでCIと本番デプロイの両方が発火する
- THEN 本番デプロイワークフローは対象コミットのCI成功を確認した後に開始される