{"id":"db483832-2c6f-4458-a00d-ed270e35a92d","shortId":"3j2BTT","kind":"skill","title":"deploy-automation","tagline":"Workflows and best practices for CI/CD automation, deployment strategies, and production releases. Use when implementing or improving deployment pipelines, managing environments, or planning production releases.","description":"# Deploy Automation Skill\n\nThis skill provides comprehensive workflows, patterns, and best practices for automating deployments across different environments and platforms.\n\n## When to Use This Skill\n\nUse this skill when:\n- Setting up CI/CD pipelines from scratch\n- Implementing deployment strategies (blue-green, canary, rolling)\n- Managing multiple environments (dev, staging, production)\n- Automating database migrations\n- Planning zero-downtime deployments\n- Creating rollback procedures\n- Managing feature flags\n- Implementing GitOps workflows\n\n## Core Principles\n\n### 1. Automation First\n\n**Always automate:**\n- Build processes\n- Testing (unit, integration, E2E)\n- Security scanning\n- Deployment to all environments\n- Rollback procedures\n- Notifications\n\n**Never manual:**\n- Production deployments without approval\n- Database migrations without backup\n- Configuration changes without versioning\n- Certificate renewals\n\n### 2. Safety Mechanisms\n\n**Implement at every stage:**\n- Automated testing gates\n- Security scanning gates\n- Manual approval gates (production)\n- Health checks before traffic switch\n- Automatic rollback on failure\n- Comprehensive logging\n\n### 3. Reversibility\n\n**Every deployment must have:**\n- Documented rollback procedure\n- Automated rollback capability\n- Database migration rollback\n- Configuration versioning\n- Backup before deployment\n\n## Deployment Strategies\n\n### Strategy Selection Guide\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ Choose deployment strategy based on:                        │\n├─────────────────────────────────────────────────────────────┤\n│ • Risk tolerance         • Team size                        │\n│ • Traffic volume         • Infrastructure complexity        │\n│ • Release frequency      • Database changes                 │\n│ • Downtime tolerance     • Testing confidence               │\n└─────────────────────────────────────────────────────────────┘\n\nStrategy Recommendations:\n\nHigh availability required (99.9%+):\n  → Blue-Green or Canary\n\nFrequent releases (multiple/day):\n  → Rolling or Canary with feature flags\n\nDatabase schema changes:\n  → Expand-Contract pattern + Blue-Green\n\nLow traffic / Internal tools:\n  → Rolling or Recreate\n\nMicroservices architecture:\n  → Canary per service + Feature flags\n```\n\n### Rolling Deployment\n\n**Best for:** Low-risk changes, frequent deployments\n\n```yaml\n# Key characteristics\n- Gradual rollout (10% → 25% → 50% → 100%)\n- Automatic progression on health checks\n- Fast rollback by stopping rollout\n- No infrastructure duplication\n- Brief period with mixed versions\n\n# Implementation checklist\n- [ ] Health checks configured (readiness + liveness)\n- [ ] Rollout parameters set (maxSurge, maxUnavailable)\n- [ ] Monitoring dashboards ready\n- [ ] Alert thresholds configured\n- [ ] Rollback script tested\n```\n\nSee `resources/deployment-strategies.md` for complete implementation.\n\n### Blue-Green Deployment\n\n**Best for:** Zero-downtime, high-confidence releases, database changes\n\n```yaml\n# Key characteristics\n- Two identical environments (Blue + Green)\n- Instant traffic switch via load balancer\n- Full rollback capability (switch back)\n- Requires 2x infrastructure\n- Testing on inactive environment before switch\n\n# Implementation checklist\n- [ ] Duplicate infrastructure configured\n- [ ] Load balancer rules ready\n- [ ] Database migration strategy defined\n- [ ] Smoke tests prepared\n- [ ] Traffic switch procedure documented\n- [ ] Rollback procedure tested\n```\n\nSee `resources/deployment-strategies.md` for complete implementation.\n\n### Canary Deployment\n\n**Best for:** High-traffic applications, risk mitigation, gradual validation\n\n```yaml\n# Key characteristics\n- Gradual traffic shift (1% → 5% → 25% → 50% → 100%)\n- Real user validation at each stage\n- Automatic rollback on metrics degradation\n- Requires traffic management (service mesh, ingress)\n- Longer deployment time but lower risk\n\n# Implementation checklist\n- [ ] Metrics baseline established\n- [ ] Analysis templates configured\n- [ ] Traffic routing rules ready\n- [ ] Alert thresholds defined\n- [ ] Automatic rollback configured\n```\n\nSee `resources/deployment-strategies.md` for complete implementation.\n\n## CI/CD Pipeline Structure\n\n### Standard Pipeline Stages\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                    CI/CD Pipeline Flow                          │\n├─────────────────────────────────────────────────────────────────┤\n│                                                                 │\n│  Source → Build → Test → Security → Package → Deploy → Verify  │\n│    │        │       │        │         │         │        │     │\n│    │        │       │        │         │         │        │     │\n│   lint    compile  unit     SAST     docker   staging  smoke    │\n│   validate         integration SCA    tag      prod     health   │\n│                  coverage   secrets  push      canary   tests    │\n│                                                                 │\n└─────────────────────────────────────────────────────────────────┘\n\nEach stage must:\n✓ Pass to proceed\n✓ Fail fast on errors\n✓ Generate artifacts/logs\n✓ Be reproducible\n```\n\n### Pipeline Configuration\n\n**Essential stages for every pipeline:**\n\n1. **Source Validation**\n   - Branch protection\n   - Code ownership\n   - Commit message validation\n\n2. **Build**\n   - Dependency installation\n   - Compilation/transpilation\n   - Asset generation\n\n3. **Test**\n   - Unit tests (required)\n   - Integration tests (required)\n   - E2E tests (staging/production)\n   - Performance tests (periodic)\n\n4. **Security**\n   - SAST (Static Application Security Testing)\n   - SCA (Software Composition Analysis)\n   - Secret scanning\n   - Container scanning\n\n5. **Package**\n   - Container build\n   - Image signing\n   - Artifact storage\n   - Version tagging\n\n6. **Deploy**\n   - Environment-specific configuration\n   - Database migrations\n   - Service deployment\n   - Health verification\n\n7. **Verify**\n   - Smoke tests\n   - Health checks\n   - Metric validation\n   - User notification\n\n## Environment Management\n\n### Environment Strategy\n\n```yaml\nenvironments:\n  development:\n    purpose: Developer testing\n    deployment: Automatic on commit\n    data: Mock/synthetic\n    access: Development team\n    monitoring: Basic\n    \n  staging:\n    purpose: Pre-production validation\n    deployment: Automatic on main branch\n    data: Anonymized production copy\n    access: QA + Dev teams\n    monitoring: Full\n    \n  production:\n    purpose: Live user traffic\n    deployment: Manual approval required\n    data: Real user data\n    access: Restricted\n    monitoring: Comprehensive + alerting\n```\n\n### Configuration Management\n\n**Best practices:**\n\n1. **Separate config from code**\n   ```\n   Code → Same across environments\n   Config → Environment-specific\n   Secrets → Managed separately\n   ```\n\n2. **Use environment variables**\n   ```bash\n   # Never in code\n   ❌ DB_PASSWORD=\"secret123\"\n   \n   # Use environment variables\n   ✅ DB_PASSWORD=${DATABASE_PASSWORD}\n   ```\n\n3. **Configuration hierarchy**\n   ```\n   1. Code defaults (lowest priority)\n   2. Config files (per environment)\n   3. Environment variables\n   4. Secret manager (highest priority)\n   ```\n\n## Database Deployments\n\n### Migration Strategies\n\n**Expand-Contract Pattern:**\n\n```\nPhase 1: Expand (Deploy with old + new schema)\n  - Add new columns (nullable)\n  - Deploy code that writes to both\n  - Backfill data gradually\n  \nPhase 2: Migrate (Switch to new schema)\n  - Update code to read from new\n  - Verify data consistency\n  - Monitor for issues\n  \nPhase 3: Contract (Clean up old schema)\n  - Remove old columns\n  - Clean up code\n  - Deploy cleanup\n```\n\n**Migration Checklist:**\n\n- [ ] Backup created and verified\n- [ ] Migration tested on staging\n- [ ] Rollback script prepared\n- [ ] Downtime estimated and communicated\n- [ ] Monitoring alerts configured\n- [ ] Team on standby\n\n## Rollback Procedures\n\n### Automatic Rollback Triggers\n\n```yaml\n# Configure automatic rollback when:\nrollback_triggers:\n  error_rate:\n    threshold: \"> 1%\"\n    window: \"5m\"\n    \n  latency_p95:\n    threshold: \"> 500ms\"\n    window: \"10m\"\n    \n  health_checks:\n    threshold: \"> 3 failures\"\n    window: \"2m\"\n    \n  business_metrics:\n    threshold: \"< baseline - 20%\"\n    window: \"15m\"\n```\n\n### Rollback Execution\n\n```bash\n#!/bin/bash\n# Rollback procedure template\n\n# 1. Stop current deployment\nkubectl rollout pause deployment/app\n\n# 2. Rollback to previous version\nkubectl rollout undo deployment/app\n\n# 3. Monitor rollback\nkubectl rollout status deployment/app --timeout=300s\n\n# 4. Verify health\n./scripts/smoke-tests.sh\n\n# 5. Notify team\n./scripts/notify-rollback.sh\n\n# 6. Document incident\n./scripts/create-incident-report.sh\n```\n\n## Feature Flags\n\n### Feature Flag Strategy\n\n```yaml\n# Use feature flags for:\n- Gradual rollouts\n- A/B testing\n- Kill switches\n- Environment-specific features\n- User segment targeting\n\n# Flag types:\nrelease_flags:    # Short-term (days/weeks)\n  - New feature rollout\n  - Bug fix validation\n  \nexperiment_flags: # Medium-term (weeks/months)\n  - A/B tests\n  - UI experiments\n  \npermission_flags: # Long-term (months/years)\n  - Beta features\n  - Enterprise features\n  \nops_flags:        # Immediate control\n  - Kill switches\n  - Maintenance mode\n```\n\n## Monitoring & Alerting\n\n### Deployment Metrics\n\n**Track these metrics:**\n\n1. **Deployment Frequency**\n   - Deployments per day/week\n   - Lead time for changes\n\n2. **Deployment Success Rate**\n   - Successful deployments / Total\n   - Rollback rate\n\n3. **Recovery Metrics**\n   - MTTR (Mean Time To Recovery)\n   - Time to detect failures\n\n4. **Quality Metrics**\n   - Change failure rate\n   - Defect escape rate\n\n### Alert Configuration\n\n```yaml\n# Critical alerts (page immediately)\ncritical:\n  - Deployment failed in production\n  - Rollback initiated\n  - Error rate spike (> 5%)\n  - Service unavailable\n\n# Warning alerts (notify channel)\nwarning:\n  - Deployment taking longer than expected\n  - Health check warnings\n  - Resource utilization high\n  - Canary analysis concerns\n\n# Info alerts (log only)\ninfo:\n  - Deployment started\n  - Deployment completed\n  - Environment status changes\n```\n\n## Security in CI/CD\n\n### Pipeline Security Checklist\n\n- [ ] Secrets managed via secret manager (not in code)\n- [ ] Service accounts with minimal permissions\n- [ ] Container images signed and verified\n- [ ] Dependency scanning enabled\n- [ ] SAST/SCA tools configured\n- [ ] Network policies in place\n- [ ] Audit logging enabled\n- [ ] Branch protection rules enforced\n\n### Secrets Management\n\n```yaml\n# Never store in repository:\n❌ API keys\n❌ Database passwords\n❌ SSH private keys\n❌ TLS certificates\n❌ OAuth credentials\n\n# Use secret managers:\n✅ AWS Secrets Manager\n✅ HashiCorp Vault\n✅ GCP Secret Manager\n✅ Azure Key Vault\n✅ Doppler\n```\n\n## Common Patterns\n\n### Deployment Windows\n\n```yaml\n# Recommended deployment windows:\noptimal:\n  - Tuesday-Thursday\n  - 10:00-15:00 (team available)\n  \navoid:\n  - Monday mornings (catching up)\n  - Friday afternoons (weekend risk)\n  - Holidays\n  - End of month/quarter\n  \n# Emergency deployments:\nrequire:\n  - Engineering manager approval\n  - Product owner notification\n  - Extra monitoring\n  - Rollback ready\n```\n\n### Pre-Deployment Checklist\n\n```markdown\n## Pre-Deployment Checklist\n\n### Code Quality\n- [ ] All tests passing\n- [ ] Code review approved\n- [ ] Linting passes\n- [ ] No security vulnerabilities\n\n### Testing\n- [ ] Unit tests: ✅\n- [ ] Integration tests: ✅\n- [ ] E2E tests: ✅\n- [ ] Performance tests: ✅\n\n### Security\n- [ ] SAST scan: Clean\n- [ ] Dependency scan: Clean\n- [ ] Secret scan: Clean\n- [ ] Container scan: Clean\n\n### Documentation\n- [ ] CHANGELOG updated\n- [ ] API docs updated\n- [ ] Runbook updated\n- [ ] Team notified\n\n### Rollback Ready\n- [ ] Backup created\n- [ ] Rollback script tested\n- [ ] Database migration rollback ready\n- [ ] Team briefed on rollback\n\n### Monitoring\n- [ ] Dashboards updated\n- [ ] Alerts configured\n- [ ] On-call notified\n- [ ] Status page ready\n```\n\n## Implementation Resources\n\nRefer to the following resources in this skill for detailed implementations:\n\n- **`resources/ci-cd-patterns.md`**: Complete CI/CD pipeline configurations for GitHub Actions, GitLab CI, Jenkins\n- **`resources/deployment-strategies.md`**: Detailed implementations of rolling, blue-green, and canary deployments\n- **`resources/rollback-procedures.md`**: Rollback scripts and procedures for different platforms\n- **`resources/database-migrations.md`**: Safe database deployment patterns and migration scripts\n\n## Tool Usage\n\n### Recommended Tools\n\n**CI/CD Platforms:**\n- GitHub Actions (GitHub repositories)\n- GitLab CI (GitLab repositories)\n- Jenkins (self-hosted, complex workflows)\n- CircleCI (SaaS, easy setup)\n- ArgoCD (Kubernetes GitOps)\n\n**Deployment:**\n- Kubernetes Deployments\n- Docker Compose (simple deployments)\n- AWS CodeDeploy\n- Google Cloud Deploy\n- Azure DevOps\n\n**Monitoring:**\n- Prometheus + Grafana\n- Datadog\n- New Relic\n- Sentry (error tracking)\n\n## Anti-Patterns\n\n**Avoid these deployment anti-patterns:**\n\n❌ **Deploying on Friday** (unless emergency)\n❌ **Manual deployment steps** (automate everything)\n❌ **No rollback plan** (always have exit strategy)\n❌ **Skipping tests** (never compromise on testing)\n❌ **Deploying multiple changes** (one change at a time)\n❌ **No monitoring** (blind deployments are dangerous)\n❌ **Database changes after code** (schema first, then code)\n❌ **Ignoring failed health checks** (always investigate)\n❌ **No post-deployment verification** (always run smoke tests)\n❌ **Secrets in environment variables** (use secret managers)\n\n## Success Metrics\n\n**Measure deployment success with:**\n\n| Metric | Target | Measurement |\n|--------|--------|-------------|\n| Deployment Frequency | Daily/Weekly | Deployments per time period |\n| Lead Time | < 1 day | Commit to production |\n| Change Failure Rate | < 5% | Failed deployments / Total |\n| MTTR | < 1 hour | Time to recover from failure |\n| Rollback Rate | < 10% | Rollbacks / Total deployments |","tags":["deploy","automation","dolu","agents","skills","dolutech","agent-skills","opencode"],"capabilities":["skill","source-dolutech","skill-deploy-automation","topic-agent-skills","topic-opencode","topic-skills"],"categories":["dolu-agents-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/dolutech/dolu-agents-skills/deploy-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add dolutech/dolu-agents-skills","source_repo":"https://github.com/dolutech/dolu-agents-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (14,038 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:40.126Z","embedding":null,"createdAt":"2026-05-18T13:22:09.653Z","updatedAt":"2026-05-18T19:14:40.126Z","lastSeenAt":"2026-05-18T19:14:40.126Z","tsv":"'-15':1126 '/bin/bash':833 '/scripts/create-incident-report.sh':874 '/scripts/notify-rollback.sh':870 '/scripts/smoke-tests.sh':866 '00':1125,1127 '1':97,403,509,651,688,715,807,837,947,1432,1445 '10':266,1124,1454 '100':269,407 '10m':815 '15m':829 '2':133,519,667,693,736,845,957 '20':827 '25':267,405 '2m':822 '2x':349 '3':161,526,685,698,755,819,854,966 '300s':862 '4':540,701,863,978 '5':404,555,867,1004,1440 '50':268,406 '500ms':813 '5m':809 '6':565,871 '7':577 '99.9':212 'a/b':887,918 'access':603,623,642 'account':1053 'across':44,658 'action':1257,1295 'add':722 'afternoon':1136 'alert':303,443,646,787,941,987,991,1008,1027,1228 'alway':100,1360,1396,1403 'analysi':436,550,1024 'anonym':620 'anti':1339,1345 'anti-pattern':1338,1344 'api':1086,1203 'applic':392,544 'approv':122,147,636,1148,1172 'architectur':245 'argocd':1312 'artifact':561 'artifacts/logs':499 'asset':524 'audit':1072 'autom':3,10,30,42,78,98,101,140,170,1355 'automat':155,270,414,446,598,615,794,799 'avail':210,1129 'avoid':1130,1341 'aw':1100,1322 'azur':1108,1327 'back':347 'backfil':732 'backup':126,178,771,1212 'balanc':342,363 'base':189 'baselin':434,826 'bash':671,832 'basic':607 'best':6,39,253,318,387,649 'beta':928 'blind':1380 'blue':68,214,235,315,335,1267 'blue-green':67,213,234,314,1266 'branch':512,618,1075 'brief':283,1222 'bug':909 'build':102,464,520,558 'busi':823 'call':1232 'canari':70,217,223,246,385,486,1023,1270 'capabl':172,345 'catch':1133 'certif':131,1094 'chang':128,202,229,258,328,956,981,1037,1372,1374,1385,1437 'changelog':1201 'channel':1010 'characterist':263,331,399 'check':151,274,291,582,817,1018,1395 'checklist':289,358,432,770,1043,1159,1164 'choos':186 'ci':1259,1299 'ci/cd':9,60,454,460,1040,1252,1292 'circleci':1308 'clean':757,764,1190,1193,1196,1199 'cleanup':768 'cloud':1325 'code':514,655,656,674,689,727,743,766,1051,1165,1170,1387,1391 'codedeploy':1323 'column':724,763 'commit':516,600,1434 'common':1112 'communic':785 'compil':471 'compilation/transpilation':523 'complet':312,383,452,1034,1251 'complex':198,1306 'compos':1319 'composit':549 'comprehens':35,159,645 'compromis':1367 'concern':1025 'confid':206,325 'config':653,660,694 'configur':127,176,292,305,361,438,448,503,570,647,686,788,798,988,1067,1229,1254 'consist':750 'contain':553,557,1057,1197 'contract':232,712,756 'control':935 'copi':622 'core':95 'coverag':483 'creat':86,772,1213 'credenti':1096 'critic':990,994 'current':839 'daily/weekly':1425 'danger':1383 'dashboard':301,1226 'data':601,619,638,641,733,749 'databas':79,123,173,201,227,327,366,571,683,706,1088,1217,1282,1384 'datadog':1332 'day':1433 'day/week':952 'days/weeks':905 'db':675,681 'default':690 'defect':984 'defin':369,445 'degrad':418 'depend':521,1062,1191 'deploy':2,11,21,29,43,65,85,110,120,164,180,181,187,252,260,317,386,426,468,566,574,597,614,634,707,717,726,767,840,942,948,950,958,962,995,1012,1031,1033,1114,1118,1144,1158,1163,1271,1283,1315,1317,1321,1326,1343,1347,1353,1370,1381,1401,1417,1423,1426,1442,1457 'deploy-autom':1 'deployment/app':844,853,860 'detail':1248,1262 'detect':976 'dev':75,625 'develop':593,595,604 'devop':1328 'differ':45,1278 'doc':1204 'docker':474,1318 'document':167,376,872,1200 'doppler':1111 'downtim':84,203,322,782 'duplic':282,359 'e2e':107,534,1183 'easi':1310 'emerg':1143,1351 'enabl':1064,1074 'end':1140 'enforc':1078 'engin':1146 'enterpris':930 'environ':24,46,74,113,334,354,568,587,589,592,659,662,669,679,697,699,892,1035,1409 'environment-specif':567,661,891 'error':497,804,1001,1336 'escap':985 'essenti':504 'establish':435 'estim':783 'everi':138,163,507 'everyth':1356 'execut':831 'exit':1362 'expand':231,711,716 'expand-contract':230,710 'expect':1016 'experi':912,921 'extra':1152 'fail':494,996,1393,1441 'failur':158,820,977,982,1438,1451 'fast':275,495 'featur':90,225,249,875,877,882,894,907,929,931 'file':695 'first':99,1389 'fix':910 'flag':91,226,250,876,878,883,898,901,913,923,933 'flow':462 'follow':1242 'frequenc':200,949,1424 'frequent':218,259 'friday':1135,1349 'full':343,628 'gate':142,145,148 'gcp':1105 'generat':498,525 'github':1256,1294,1296 'gitlab':1258,1298,1300 'gitop':93,1314 'googl':1324 'gradual':264,395,400,734,885 'grafana':1331 'green':69,215,236,316,336,1268 'guid':185 'hashicorp':1103 'health':150,273,290,482,575,581,816,865,1017,1394 'hierarchi':687 'high':209,324,390,1022 'high-confid':323 'high-traff':389 'highest':704 'holiday':1139 'host':1305 'hour':1446 'ident':333 'ignor':1392 'imag':559,1058 'immedi':934,993 'implement':18,64,92,136,288,313,357,384,431,453,1237,1249,1263 'improv':20 'inact':353 'incid':873 'info':1026,1030 'infrastructur':197,281,350,360 'ingress':424 'initi':1000 'instal':522 'instant':337 'integr':106,478,531,1181 'intern':239 'investig':1397 'issu':753 'jenkin':1260,1302 'key':262,330,398,1087,1092,1109 'kill':889,936 'kubectl':841,850,857 'kubernet':1313,1316 'latenc':810 'lead':953,1430 'lint':470,1173 'live':294,631 'load':341,362 'log':160,1028,1073 'long':925 'long-term':924 'longer':425,1014 'low':237,256 'low-risk':255 'lower':429 'lowest':691 'main':617 'mainten':938 'manag':23,72,89,421,588,648,665,703,1045,1048,1080,1099,1102,1107,1147,1413 'manual':118,146,635,1352 'markdown':1160 'maxsurg':298 'maxunavail':299 'mean':970 'measur':1416,1422 'mechan':135 'medium':915 'medium-term':914 'mesh':423 'messag':517 'metric':417,433,583,824,943,946,968,980,1415,1420 'microservic':244 'migrat':80,124,174,367,572,708,737,769,775,1218,1286 'minim':1055 'mitig':394 'mix':286 'mock/synthetic':602 'mode':939 'monday':1131 'monitor':300,606,627,644,751,786,855,940,1153,1225,1329,1379 'month/quarter':1142 'months/years':927 'morn':1132 'mttr':969,1444 'multipl':73,1371 'multiple/day':220 'must':165,490 'network':1068 'never':117,672,1082,1366 'new':720,723,740,747,906,1333 'notif':116,586,1151 'notifi':868,1009,1209,1233 'nullabl':725 'oauth':1095 'old':719,759,762 'on-cal':1230 'one':1373 'op':932 'optim':1120 'owner':1150 'ownership':515 'p95':811 'packag':467,556 'page':992,1235 'paramet':296 'pass':491,1169,1174 'password':676,682,684,1089 'pattern':37,233,713,1113,1284,1340,1346 'paus':843 'per':247,696,951,1427 'perform':537,1185 'period':284,539,1429 'permiss':922,1056 'phase':714,735,754 'pipelin':22,61,455,458,461,502,508,1041,1253 'place':1071 'plan':26,81,1359 'platform':48,1279,1293 'polici':1069 'post':1400 'post-deploy':1399 'practic':7,40,650 'pre':611,1157,1162 'pre-deploy':1156,1161 'pre-product':610 'prepar':372,781 'previous':848 'principl':96 'prioriti':692,705 'privat':1091 'procedur':88,115,169,375,378,793,835,1276 'proceed':493 'process':103 'prod':481 'product':14,27,77,119,149,612,621,629,998,1149,1436 'progress':271 'prometheus':1330 'protect':513,1076 'provid':34 'purpos':594,609,630 'push':485 'qa':624 'qualiti':979,1166 'rate':805,960,965,983,986,1002,1439,1453 'read':745 'readi':293,302,365,442,1155,1211,1220,1236 'real':408,639 'recommend':208,1117,1290 'recov':1449 'recoveri':967,973 'recreat':243 'refer':1239 'releas':15,28,199,219,326,900 'relic':1334 'remov':761 'renew':132 'repositori':1085,1297,1301 'reproduc':501 'requir':211,348,419,530,533,637,1145 'resourc':1020,1238,1243 'resources/ci-cd-patterns.md':1250 'resources/database-migrations.md':1280 'resources/deployment-strategies.md':310,381,450,1261 'resources/rollback-procedures.md':1272 'restrict':643 'revers':162 'review':1171 'risk':191,257,393,430,1138 'roll':71,221,241,251,1265 'rollback':87,114,156,168,171,175,276,306,344,377,415,447,779,792,795,800,802,830,834,846,856,964,999,1154,1210,1214,1219,1224,1273,1358,1452,1455 'rollout':265,279,295,842,851,858,886,908 'rout':440 'rule':364,441,1077 'run':1404 'runbook':1206 'saa':1309 'safe':1281 'safeti':134 'sast':473,542,1188 'sast/sca':1065 'sca':479,547 'scan':109,144,552,554,1063,1189,1192,1195,1198 'schema':228,721,741,760,1388 'scratch':63 'script':307,780,1215,1274,1287 'secret':484,551,664,702,1044,1047,1079,1098,1101,1106,1194,1407,1412 'secret123':677 'secur':108,143,466,541,545,1038,1042,1176,1187 'see':309,380,449 'segment':896 'select':184 'self':1304 'self-host':1303 'sentri':1335 'separ':652,666 'servic':248,422,573,1005,1052 'set':58,297 'setup':1311 'shift':402 'short':903 'short-term':902 'sign':560,1059 'simpl':1320 'size':194 'skill':31,33,53,56,1246 'skill-deploy-automation' 'skip':1364 'smoke':370,476,579,1405 'softwar':548 'sourc':463,510 'source-dolutech' 'specif':569,663,893 'spike':1003 'ssh':1090 'stage':76,139,413,459,475,489,505,608,778 'staging/production':536 'standard':457 'standbi':791 'start':1032 'static':543 'status':859,1036,1234 'step':1354 'stop':278,838 'storag':562 'store':1083 'strategi':12,66,182,183,188,207,368,590,709,879,1363 'structur':456 'success':959,961,1414,1418 'switch':154,339,346,356,374,738,890,937 'tag':480,564 'take':1013 'target':897,1421 'team':193,605,626,789,869,1128,1208,1221 'templat':437,836 'term':904,916,926 'test':104,141,205,308,351,371,379,465,487,527,529,532,535,538,546,580,596,776,888,919,1168,1178,1180,1182,1184,1186,1216,1365,1369,1406 'threshold':304,444,806,812,818,825 'thursday':1123 'time':427,954,971,974,1377,1428,1431,1447 'timeout':861 'tls':1093 'toler':192,204 'tool':240,1066,1288,1291 'topic-agent-skills' 'topic-opencode' 'topic-skills' 'total':963,1443,1456 'track':944,1337 'traffic':153,195,238,338,373,391,401,420,439,633 'trigger':796,803 'tuesday':1122 'tuesday-thursday':1121 'two':332 'type':899 'ui':920 'unavail':1006 'undo':852 'unit':105,472,528,1179 'unless':1350 'updat':742,1202,1205,1207,1227 'usag':1289 'use':16,51,54,668,678,881,1097,1411 'user':409,585,632,640,895 'util':1021 'valid':396,410,477,511,518,584,613,911 'variabl':670,680,700,1410 'vault':1104,1110 'verif':576,1402 'verifi':469,578,748,774,864,1061 'version':130,177,287,563,849 'via':340,1046 'volum':196 'vulner':1177 'warn':1007,1011,1019 'weekend':1137 'weeks/months':917 'window':808,814,821,828,1115,1119 'without':121,125,129 'workflow':4,36,94,1307 'write':729 'yaml':261,329,397,591,797,880,989,1081,1116 'zero':83,321 'zero-downtim':82,320","prices":[{"id":"79bf80f4-737b-4a62-93d9-402d19820b98","listingId":"db483832-2c6f-4458-a00d-ed270e35a92d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"dolutech","category":"dolu-agents-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:09.653Z"}],"sources":[{"listingId":"db483832-2c6f-4458-a00d-ed270e35a92d","source":"github","sourceId":"dolutech/dolu-agents-skills/deploy-automation","sourceUrl":"https://github.com/dolutech/dolu-agents-skills/tree/main/skills/deploy-automation","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:09.653Z","lastSeenAt":"2026-05-18T19:14:40.126Z"}],"details":{"listingId":"db483832-2c6f-4458-a00d-ed270e35a92d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"dolutech","slug":"deploy-automation","github":{"repo":"dolutech/dolu-agents-skills","stars":6,"topics":["agent-skills","opencode","skills"],"license":"mit","html_url":"https://github.com/dolutech/dolu-agents-skills","pushed_at":"2026-03-21T12:00:55Z","description":"Dolu Agents Skills - Open-source collection of modular and extensible skills for AI agents.","skill_md_sha":"83e0108280dff348771cb3943079425ddc75743d","skill_md_path":"skills/deploy-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/dolutech/dolu-agents-skills/tree/main/skills/deploy-automation"},"layout":"multi","source":"github","category":"dolu-agents-skills","frontmatter":{"name":"deploy-automation","description":"Workflows and best practices for CI/CD automation, deployment strategies, and production releases. Use when implementing or improving deployment pipelines, managing environments, or planning production releases."},"skills_sh_url":"https://skills.sh/dolutech/dolu-agents-skills/deploy-automation"},"updatedAt":"2026-05-18T19:14:40.126Z"}}