Files
gh-greyhaven-ai-claude-code…/commands/deployment-status.md
2025-11-29 18:29:04 +08:00

279 lines
6.7 KiB
Markdown

---
name: cf-deployment-status
description: Check Cloudflare deployment status across environments, view recent deployments, and monitor CI/CD pipeline health
---
Check the status of Cloudflare Workers and Pages deployments. This command provides a comprehensive view of deployment health across all environments.
## What This Command Does
1. **List Recent Deployments**
- Shows last 10 deployments
- Displays status (success/failure/in-progress)
- Shows deployment duration
- Includes commit SHA and message
2. **GitHub Actions Status**
- Lists recent workflow runs
- Shows current deployment pipeline status
- Identifies failed or stuck workflows
- Displays workflow execution time
3. **Environment Health Check**
- Checks production deployment status
- Verifies staging environment
- Tests preview deployments
- Shows environment-specific metrics
## Usage
```bash
# Basic usage - check all environments
/cf-deployment-status
# Check specific environment
/cf-deployment-status production
# Show last N deployments
/cf-deployment-status --limit 20
# Show failed deployments only
/cf-deployment-status --failed
# Check specific worker
/cf-deployment-status --worker my-worker-name
```
## Implementation
When you use this command, Claude will:
1. **Check Cloudflare Deployments**
```bash
# List deployments via Wrangler
wrangler deployments list --name <worker-name>
# Get deployment details
wrangler deployments view <deployment-id>
```
2. **Check GitHub Actions**
```bash
# List recent workflow runs
gh run list --workflow=deploy.yml --limit=10 --json status,conclusion,createdAt,updatedAt,headSha,headBranch
# Check for failures
gh run list --workflow=deploy.yml --status=failure --limit=5
```
3. **Environment Health**
```bash
# Test production endpoint
curl -f https://production.example.com/health
# Test staging endpoint
curl -f https://staging.example.com/health
```
4. **Generate Report**
```markdown
## Deployment Status Report
**Generated**: 2025-01-15 10:30:00 UTC
### Summary
- Total deployments (24h): 15
- Success rate: 93% (14/15)
- Active failures: 1
- Average duration: 2m 45s
### Environments
#### Production
- Status: ✓ Healthy
- Last deployment: 2 hours ago (abc123)
- Version: v1.2.3
- Health check: ✓ Passing
#### Staging
- Status: ✓ Healthy
- Last deployment: 30 minutes ago (def456)
- Version: v1.2.4-rc.1
- Health check: ✓ Passing
### Recent Deployments
| Time | Environment | Status | Duration | Commit | Triggered By |
|------|-------------|--------|----------|--------|--------------|
| 10:15 | production | ✓ Success | 2m 30s | abc123 | GitHub Actions |
| 10:00 | staging | ✓ Success | 2m 15s | def456 | GitHub Actions |
| 09:45 | staging | ✗ Failed | 1m 05s | ghi789 | Manual |
### Active Issues
1. Staging deployment failed (ghi789)
- Error: Build failed - missing environment variable
- Time: 09:45 UTC
- Duration: 1m 05s
- Recommendation: Check GitHub secrets configuration
### GitHub Actions Status
- Workflow: Deploy to Cloudflare
- Last run: ✓ Success (2 hours ago)
- Average duration: 2m 45s
- Success rate (7 days): 95%
### Recommendations
✓ All systems operational
- No action required
```
## Output Format
The command provides structured output with:
- **Executive summary** - Quick overview of deployment health
- **Environment status** - Status of each environment (production, staging, preview)
- **Recent deployments** - Table of recent deployments with status
- **Active issues** - Any current deployment problems
- **CI/CD health** - GitHub Actions workflow status
- **Recommendations** - Suggested actions
## Error Handling
If the command encounters issues:
1. **No Cloudflare credentials**
```
⚠ Warning: Cloudflare API token not found
Set CLOUDFLARE_API_TOKEN environment variable or configure wrangler.toml
```
2. **GitHub CLI not authenticated**
```
⚠ Warning: GitHub CLI not authenticated
Run: gh auth login
```
3. **Worker not found**
```
✗ Error: Worker 'my-worker' not found
Available workers:
- production-worker
- staging-worker
```
4. **API rate limit**
```
⚠ Warning: Cloudflare API rate limit reached
Retry in 60 seconds or use cached data
```
## Best Practices
1. **Regular Monitoring**
- Run daily to track deployment health
- Set up automated checks in CI/CD
- Monitor success rate trends
2. **Quick Debugging**
- Use `--failed` flag to focus on issues
- Check specific environments during incidents
- Compare deployment durations
3. **Integration**
- Add to deployment pipeline for validation
- Include in monitoring dashboards
- Use in incident response runbooks
## Related Commands
- `/cf-logs-analyze` - Analyze deployment logs
- `/cf-metrics-dashboard` - View detailed metrics
- Use `cloudflare-deployment-monitor` agent for active monitoring
## Examples
### Example 1: Check Production Status
```bash
/cf-deployment-status production
```
Output:
```markdown
## Production Deployment Status
**Status**: ✓ Healthy
**Last Deployment**: 2 hours ago
**Version**: v1.2.3 (abc123)
**Health Check**: ✓ Passing
**Response Time**: 45ms (p95)
**Error Rate**: 0.01%
**Recent Deployments**:
1. ✓ abc123 - 2 hours ago - "Fix authentication bug" (2m 30s)
2. ✓ xyz789 - 1 day ago - "Add new feature" (2m 45s)
3. ✓ def456 - 2 days ago - "Update dependencies" (3m 10s)
```
### Example 2: Check Failed Deployments
```bash
/cf-deployment-status --failed
```
Output:
```markdown
## Failed Deployments
**Last 24 Hours**: 2 failures
### Failure 1: ghi789
- **Time**: 2 hours ago
- **Environment**: staging
- **Duration**: 1m 05s
- **Error**: Build failed - Type error in src/api/handler.ts
- **Triggered By**: GitHub Actions (PR #123)
- **Logs**: Available via `gh run view 12345678`
### Failure 2: jkl012
- **Time**: 5 hours ago
- **Environment**: preview
- **Duration**: 45s
- **Error**: Missing CLOUDFLARE_ACCOUNT_ID secret
- **Triggered By**: GitHub Actions (PR #122)
- **Fixed**: Yes (redeployed successfully)
```
### Example 3: Check All Workers
```bash
/cf-deployment-status
```
Output shows status for all workers and environments with summary metrics.
## Configuration
The command uses these configuration sources:
1. **wrangler.toml** - Worker configuration
2. **GitHub Actions workflows** - CI/CD configuration
3. **Environment variables**:
- `CLOUDFLARE_API_TOKEN`
- `CLOUDFLARE_ACCOUNT_ID`
- `GITHUB_TOKEN` (for gh CLI)
## Troubleshooting
**Command returns no deployments**:
- Check wrangler.toml configuration
- Verify worker name
- Ensure API token has correct permissions
**GitHub Actions status unavailable**:
- Authenticate with `gh auth login`
- Check repository permissions
- Verify workflow file exists
**Health checks fail**:
- Verify endpoint URLs
- Check network connectivity
- Ensure health endpoint is implemented