Claude-skill-registry deployment-engineer
Deployment automation specialist for CI/CD pipelines and infrastructure. Use when setting up deployment, configuring CI/CD, or managing releases.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/deployment-engineer" ~/.claude/skills/majiayu000-claude-skill-registry-deployment-engineer && rm -rf "$T"
manifest:
skills/data/deployment-engineer/SKILL.mdsource content
Deployment Engineer
Specialist in deployment automation, CI/CD pipelines, and infrastructure management.
When This Skill Activates
Activates when you:
- Set up deployment pipeline
- Configure CI/CD
- Manage releases
- Automate infrastructure
CI/CD Pipeline
Pipeline Stages
stages: - lint - test - build - security - deploy-dev - deploy-staging - deploy-production
GitHub Actions Example
name: CI/CD on: push: branches: [main, develop] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm run lint test: runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - run: npm ci - run: npm test build: runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - run: npm ci - run: npm run build - uses: actions/upload-artifact@v4 with: name: build path: dist/ deploy-production: runs-on: ubuntu-latest needs: build if: github.ref == 'refs/heads/main' environment: production steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 with: name: build path: dist/ - run: npm run deploy
Deployment Strategies
1. Blue-Green Deployment
┌─────────┐ │ Load │ │ Balancer│ └────┬────┘ │ ┌────────┴────────┐ │ Switch │ ├────────┬────────┤ ▼ ▼ ▼ ┌─────┐ ┌─────┐ ┌─────┐ │Blue │ │Green│ │ │ └─────┘ └─────┘ └─────┘
2. Rolling Deployment
┌─────────────────────────────────────┐ │ v1 v1 v1 v1 v1 v1 v1 v1 v1 │ → Old │ v2 v2 v2 v2 v2 v2 v2 v2 v2 │ → New └─────────────────────────────────────┘ ▲ ▲ │ │ Start End
3. Canary Deployment
┌──────────────────────────────────────┐ │ v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 │ → Old │ v2 v2 v2 v2 │ → Canary (5%) └──────────────────────────────────────┘ Monitor metrics, then: │ v1 v1 v1 v1 │ → Old (50%) │ v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 │ → New (50%)
Environment Configuration
Environment Variables
# Production NODE_ENV=production DATABASE_URL=postgresql://... API_KEY=sk-... SENTRY_DSN=https://example.com/123 # Development NODE_ENV=development DATABASE_URL=postgresql://localhost:5432/dev
Configuration Management
// config/production.ts export default { database: { url: process.env.DATABASE_URL, poolSize: 20, }, redis: { url: process.env.REDIS_URL, }, };
Health Checks
// GET /health app.get('/health', (req, res) => { const health = { status: 'ok', timestamp: new Date().toISOString(), checks: { database: 'ok', redis: 'ok', external_api: 'ok', }, }; if (Object.values(health.checks).some(v => v !== 'ok')) { health.status = 'degraded'; return res.status(503).json(health); } res.json(health); });
Rollback Strategy
# Kubernetes kubectl rollout undo deployment/app # Docker docker-compose down docker-compose up -d --scale app=<previous-version> # Git git revert HEAD git push
Monitoring & Logging
Metrics to Track
- Deployment frequency
- Lead time for changes
- Mean time to recovery (MTTR)
- Change failure rate
Logging
// Structured logging logger.info('Deployment started', { version: process.env.VERSION, environment: process.env.NODE_ENV, timestamp: new Date().toISOString(), });
Scripts
Generate deployment config:
python scripts/generate_deploy.py <environment>
Validate deployment:
python scripts/validate_deploy.py
References
- CI/CD pipeline examplesreferences/pipelines.md
- K8s deployment configsreferences/kubernetes.md
- Monitoring setupreferences/monitoring.md