← Back to list

deployment
by Soborbo
⭐ 1🍴 0📅 Jan 19, 2026
SKILL.md
name: deployment description: Deployment workflow for Astro sites on Cloudflare Pages + GitHub. Staging → Production flow. Use before first deploy.
Deployment Skill
Purpose
Defines deployment workflow for Astro sites. Cloudflare Pages + GitHub only.
Scope
| ✅ Supported | ❌ Out of Scope |
|---|---|
| Cloudflare Pages | Vercel, Netlify |
| GitHub repos | GitLab, Bitbucket |
| Single-site projects | Monorepos |
| Astro static/SSR | Other frameworks |
Core Rules
- Never deploy directly to production — Always staging first
- Environment variables in dashboard — Never in code
- Staging is noindex — Always blocked from search
- Production needs client approval — No exceptions
- Rollback plan ready — Before every deploy
Blocking Conditions (STOP)
Deployment BLOCKED if any:
| Condition | Check |
|---|---|
| Build fails | npm run build |
| TypeScript errors | npx astro check |
| Missing env var | Dashboard check |
| Lighthouse < 90 | All categories |
| Forms not working | Test submission |
| Staging indexable | robots.txt / noindex |
| No client approval | Written confirmation |
If blocked → FIX first, do not deploy.
Environment Variables
Set in Cloudflare Dashboard → Settings → Environment Variables
| Variable | Required | Notes |
|---|---|---|
PUBLIC_SITE_URL | ✅ | Full URL with https |
TURNSTILE_SITE_KEY | ✅ | Different for prod/preview |
TURNSTILE_SECRET_KEY | ✅ | Secret |
RESEND_API_KEY | ✅ | Email sending |
GTM_ID | ✅ | Analytics |
Missing required env var = deployment BLOCKED.
Never:
- Commit
.envto git - Put secrets in
wrangler.toml - Use same keys for prod and preview
Branch Configuration
| Branch | Environment | URL |
|---|---|---|
main | Production | domain.com |
staging | Preview | staging.domain.com |
feature/* | Preview | [hash].pages.dev |
DNS Setup (Cloudflare)
Type Name Content Proxy
CNAME @ [project].pages.dev ✓
CNAME www [project].pages.dev ✓
Staging Protection
Required: Choose one:
| Method | When to Use |
|---|---|
| Cloudflare Access | Client needs to review |
| robots.txt + noindex | Internal only |
<!-- BaseLayout.astro - always include -->
{import.meta.env.MODE !== 'production' && (
<meta name="robots" content="noindex, nofollow" />
)}
Monitoring (Required)
| Type | Tool | Required |
|---|---|---|
| Analytics | Cloudflare Analytics | ✅ |
| Uptime | Cloudflare or UptimeRobot | ✅ |
| Search | Google Search Console | ✅ |
| Errors | Console or Sentry | Recommended |
Basic uptime monitoring is NOT optional.
Checklists
Pre-Staging
-
npm run buildpasses -
npx astro checkclean - No console.logs in code
- Env vars documented
Pre-Production
- Lighthouse > 90 all categories
- Forms working + sending emails
- GTM firing correctly
- No broken links
- Mobile tested on real device
- 404 page exists
- Client approved staging
- Legal pages present
- Contact info correct
Post-Deploy (Within 1 hour)
- Site loads on production URL
- Forms work
- Analytics receiving data
- Submit sitemap to Search Console
Rollback
# Via Dashboard
Pages → Project → Deployments → [Previous] → "Rollback"
# Via CLI
npx wrangler pages deployment list --project-name=[name]
npx wrangler pages deployment rollback --project-name=[name] [id]
Test rollback BEFORE you need it.
Forbidden
- ❌ Secrets in code or wrangler.toml
- ❌ Direct push to main without staging
- ❌ Deploy without client approval
- ❌ Indexable staging environment
- ❌ No uptime monitoring
- ❌ Deploy with blocking conditions
References
- cloudflare-setup.md — Detailed setup
- troubleshooting.md — Common issues
- wrangler-template.md — Config template
Definition of Done
- Staging accessible and protected
- Production DNS configured
- SSL working (https://)
- All env vars set
- Uptime monitoring active
- Search Console configured
- Rollback tested
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon