部署暫存環境
安全地將應用程式部署到暫存環境的可重複流程。
示範目標: ex_staging/ 資料夾(本地模擬暫存環境 — 非實際雲端)。
步驟
cd到目標資料夾(ex_staging或@提及的路徑)。- 檢查目標的 Git 樹狀態:
git status --porcelain -- .(從該資料夾執行)或git status --porcelain -- ex_staging。 如果目標有未提交的變更,停止並發出警告。(課程 monorepo 中其他資料夾的髒亂可在警告後忽略。) - 執行測試:
npm test。如果失敗,停止並顯示輸出。 - 建置:
npm run build。如果失敗,停止。 - 在部署前請求人工確認(外部操作 / 生產環境不可逆動作)。 在獲得使用者在本次聊天中明確的「OK」之前,不要執行部署。
- 收到 OK 後:
npm run deploy:staging(相當於node scripts/deploy.mjs staging)。- 在這個示範中,這會啟動一個本地伺服器並寫入
.staging-url。 - 在真實的儲存庫中,請取代為
./scripts/deploy.sh staging或你的 pipeline。
- 在這個示範中,這會啟動一個本地伺服器並寫入
- 煙霧檢查:讀取
.staging-url並對{url}/health發送 GET 請求(使用curl、Invoke-WebRequest或fetch)。 應回傳 HTTP 200 且ok: true。 - 總結:部署了什麼、URL、煙霧檢查結果。提及使用
npm run staging:stop來關閉示範。
規則
- 絕對不要在測試失敗或目標髒亂時部署。
- 絕對不要在未經使用者明確請求/確認時部署(人工交接閘門)。
- 始終顯示每個命令的實際輸出。
- 在此儲存庫中不要使用
staging.example.com— 煙霧檢查是針對.staging-url中的本地 URL 進行。