部署 验证
- 作者仓库星标 0
- 作者仓库 skills-registry
verify-deployment
Confirms all deployed services are live, reachable, and communicating correctly. Produces a pass/fail summary table and a frontend screenshot.
Step 1: Read DEPLOYMENT_DOCS/DEPLOYED_ENV.md
Extract: FRONTEND_URL, BACKEND_URL, and any other service URLs.
If the file doesn't exist:
"No DEPLOYED_ENV.md found. Please provide your deployed service URLs manually, or run deploy-project first."
Load the values into shell variables for use in the checks below.
Step 2: HTTP health checks for all services
check_url() {
local name=$1 url=$2 max_retries=${3:-1}
for i in $(seq 1 $max_retries); do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 30 "$url" 2>/dev/null || echo "000")
if [ "$STATUS" -ge 200 ] && [ "$STATUS" -lt 400 ]; then
echo "✓ $name → HTTP $STATUS"
return 0
fi
if [ $i -lt $max_retries ]; then
echo " $name: HTTP $STATUS, retrying in 30s (attempt $i/$max_retries)..."
sleep 30
fi
done
echo "✗ $name → HTTP $STATUS (FAILED)"
return 1
}
# Frontend (2 attempts — no cold start)
check_url "Frontend" "$FRONTEND_URL" 2
# Backend health endpoint (3 attempts — Render free tier cold start ~30s)
check_url "Backend /health" "$BACKEND_URL/health" 3
Track whether each check passed or failed for the summary table in Step 5.
Step 3: agent-browser visual check of frontend
agent-browser open "$FRONTEND_URL"
agent-browser wait --load networkidle
agent-browser screenshot DEPLOYMENT_DOCS/verify-frontend.png
agent-browser snapshot -i
After getting the snapshot, inspect the HTML for error indicators:
- If snapshot contains any of:
"Error","404","Cannot GET","Application error","Something went wrong"→ mark frontend visual check as FAILED - If snapshot shows normal UI elements (nav, content, buttons, forms) → mark as PASSED
agent-browser close
Step 4: Cross-service connectivity test
# Test backend API health endpoint that also checks DB connectivity
API_RESPONSE=$(curl -s --max-time 30 "$BACKEND_URL/api/health" 2>/dev/null)
if echo "$API_RESPONSE" | python3 -c "import sys,json; d=json.load(sys.stdin); assert d.get('status') in ['ok','healthy','up'], f'unexpected: {d}'" 2>/dev/null; then
echo "✓ Backend API responding correctly"
else
echo "ℹ Backend /api/health returned: $API_RESPONSE"
echo " (This is OK if your backend doesn't have a /api/health endpoint)"
fi
# Test DB connectivity via backend (if backend exposes it)
DB_RESPONSE=$(curl -s --max-time 30 "$BACKEND_URL/api/health/db" 2>/dev/null)
if [ -n "$DB_RESPONSE" ]; then
if echo "$DB_RESPONSE" | python3 -c "import sys,json; d=json.load(sys.stdin); assert d.get('db') in ['connected','ok','healthy']" 2>/dev/null; then
echo "✓ Database connection verified via backend"
else
echo "ℹ DB health response: $DB_RESPONSE"
fi
else
echo "ℹ No /api/health/db endpoint — skipping DB connectivity check"
fi
Step 5: Print summary table
=== Deployment Verification Summary ===
Service Status URL
─────────────────────────────────────
Frontend ✓ PASS <FRONTEND_URL>
Backend ✓ PASS <BACKEND_URL>
Backend API ✓ PASS /api/health
Database ✓ PASS via backend
Screenshot saved: DEPLOYMENT_DOCS/verify-frontend.png
═══════════════════════════════════════
Fill in actual URLs and actual pass/fail results from Steps 2–4. Use ✗ FAIL for any check that did not pass.
Step 6: On failure
If any check FAILS:
- Print clearly:
"VERIFICATION FAILED: [service name] is not responding" - Suggest a specific fix based on which service failed:
- Frontend fails: "Check Vercel/Netlify dashboard for build errors"
- Backend fails: "Check Render dashboard for deploy status — free tier may still be cold-starting (up to 30s)"
- DB fails: "Check Supabase/Neon dashboard — project may have paused"
- Ask the user:
"Would you like me to re-run verification after you've checked? (yes/no)" - Do NOT claim the deployment is successful if any check fails.
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: AayushMS/deploy-skills — distributed by TomeVault.
- 流狐分类
- 运维部署
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- Shell 执行
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Extract: FRONTENDURL, BACKENDURL, and any other service URLs. If the file doesn't exist: "No DEPLOYEDENV.md found. Please provide your deployed service URLs manually, or run deploy-project first."
Track whether each check passed or failed for the summary table in Step 5.
After getting the snapshot, inspect the HTML for error indicators: If snapshot contains any of: "Error", "404", "Cannot GET", "Application error", "Something went wrong" → mark frontend visual check as FAILED If snapshot shows normal UI elements (nav, content,…
Step 4: Cross-service connectivity test
Fill in actual URLs and actual pass/fail results from Steps 2–4. Use ✗ FAIL for any check that did not pass.
If any check FAILS: Print clearly: "VERIFICATION FAILED: [service name] is not responding" Suggest a specific fix based on which service failed:
# verify-deployment
Confirms all deployed services are live, reachable, and communicating correctly. Produces a pass/fail summary table and a frontend screenshot.
---
## Step 1: Read DEPLOYMENT_DOCS/DEPLOYED_ENV.md
Extract: `FRONTEND_URL`, `BACKEND_URL`, and any other service URLs.
If the file doesn't exist:
> "No DEPLOYED_ENV.md found. Please provide your deployed service URLs manually, or run deploy-project first."
Load the values into shell variables for use in the checks below.
---
## Step 2: HTTP health checks for all services
```bash
check_url() {
local name=$1 url=$2 max_retries=${3:-1}
for i in $(seq 1 $max_retries); do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 30 "$url" 2>/dev/null || echo "000")
if [ "$STATUS" -ge 200 ] && [ "$STATUS" -lt 400 ]; then
echo "✓ $name → HTTP $STATUS"
return 0
fi
if [ $i -lt $max_retries ]; then
echo " $name: HTTP $STATUS, retrying in 30s (attempt $i/$max_retries)..."
sleep 30
fi
done
echo "✗ $name → HTTP $STATUS (FAILED)"
return 1
}
# Frontend (2 attempts — no cold start)
check_url "Frontend" "$FRONTEND_URL" 2
# Backend health endpoint (3 attempts — Render free tier cold start ~30s)
check_url "Backend /health" "$BACKEND_URL/health" 3
```
Track whether each check passed or failed for the summary table in Step 5.
---
## Step 3: agent-browser visual check of frontend
```bash
agent-browser open "$FRONTEND_URL"
agent-browser wait --load networkidle
agent-browser screenshot DEPLOYMENT_DOCS/verify-frontend.png
agent-browser snapshot -i
```
After getting the snapshot, inspect the HTML for error indicators:
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Step 1: Read DEPLOYMENTDOCS/DEPLOYEDENV.md → Step 2: HTTP health checks for all services → Step 3: agent-browser visual check of frontend → Step 4: Cross-service connectivity test → Step 5: Print summary table → Step 6: On failure
要点 -> FAILED · PASSED · Frontend fails · Backend fails · DB fails · Do NOT claim the deployment is successful if any check fails.
文件/命令 -> FRONTENDURL · BACKENDURL · "Error" · "404" · "Cannot GET" · "Application error" · "Something went wrong" · ✗ FAIL
内容 SHA-256 -> aa2ad633a408
方法与流程
适用与边界
原文中的明确线索
FRONTENDURL、BACKENDURL、"Error"、"404"、"Cannot GET"、"Application error"、"Something went wrong"、✗ FAIL