@maestro-ai/cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/package.json +48 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
# Prompt: Pipeline CI/CD
|
|
2
|
+
|
|
3
|
+
> **Quando usar**: Configuração inicial de projeto ou melhorias de DevOps
|
|
4
|
+
> **Especialista**: DevOps / SRE
|
|
5
|
+
> **Nível**: Médio
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Fluxo de Contexto
|
|
10
|
+
|
|
11
|
+
Antes de usar este prompt, tenha em mãos:
|
|
12
|
+
- `docs/CONTEXTO.md` - Entendimento do projeto
|
|
13
|
+
- `docs/05-arquitetura/arquitetura.md` - Arquitetura e stack
|
|
14
|
+
|
|
15
|
+
Após gerar, salve o resultado em:
|
|
16
|
+
- `.github/workflows/` (GitHub Actions)
|
|
17
|
+
- `.gitlab-ci.yml` (GitLab)
|
|
18
|
+
- `docs/10-devops/pipeline.md` (documentação)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Prompt Completo
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
Atue como engenheiro DevOps sênior especializado em CI/CD.
|
|
26
|
+
|
|
27
|
+
## Contexto do Projeto
|
|
28
|
+
|
|
29
|
+
[COLE O CONTEÚDO DE docs/CONTEXTO.md]
|
|
30
|
+
|
|
31
|
+
## Stack Tecnológica
|
|
32
|
+
|
|
33
|
+
- Linguagem: [TypeScript/Python/Java/Go/etc]
|
|
34
|
+
- Framework: [NestJS/FastAPI/Spring/etc]
|
|
35
|
+
- Banco de dados: [PostgreSQL/MySQL/MongoDB]
|
|
36
|
+
- Testes: [Jest/Pytest/JUnit]
|
|
37
|
+
- Containerização: [Docker/Podman/Nenhum]
|
|
38
|
+
|
|
39
|
+
## Infraestrutura
|
|
40
|
+
|
|
41
|
+
- Cloud: [AWS/GCP/Azure/On-premise]
|
|
42
|
+
- Orquestração: [Kubernetes/ECS/App Engine/VM]
|
|
43
|
+
- Registry: [ECR/GCR/DockerHub/etc]
|
|
44
|
+
|
|
45
|
+
## Repositório
|
|
46
|
+
|
|
47
|
+
- Provider: [GitHub/GitLab/Bitbucket/Azure DevOps]
|
|
48
|
+
- Branch Strategy: [GitFlow/Trunk-based/GitHub Flow]
|
|
49
|
+
- Branches: main, develop, feature/*, hotfix/*
|
|
50
|
+
|
|
51
|
+
## Ambientes
|
|
52
|
+
|
|
53
|
+
- [ ] Development (dev)
|
|
54
|
+
- [ ] Staging (stg)
|
|
55
|
+
- [ ] Production (prod)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Sua Missão
|
|
60
|
+
|
|
61
|
+
Configure uma pipeline CI/CD completa:
|
|
62
|
+
|
|
63
|
+
### 1. Continuous Integration (CI)
|
|
64
|
+
|
|
65
|
+
#### 1.1 Trigger
|
|
66
|
+
- Em quais branches rodar
|
|
67
|
+
- Em quais eventos (push, PR, tag)
|
|
68
|
+
- Paths que disparam (ou ignoram)
|
|
69
|
+
|
|
70
|
+
#### 1.2 Jobs de Qualidade
|
|
71
|
+
Para cada job, detalhe:
|
|
72
|
+
- Nome do job
|
|
73
|
+
- Runner/imagem
|
|
74
|
+
- Steps
|
|
75
|
+
|
|
76
|
+
**Lint & Format**
|
|
77
|
+
- Verificar code style
|
|
78
|
+
- Fail se houver problemas
|
|
79
|
+
|
|
80
|
+
**Type Check** (se aplicável)
|
|
81
|
+
- Verificar tipos
|
|
82
|
+
- Fail em erros de tipo
|
|
83
|
+
|
|
84
|
+
**Unit Tests**
|
|
85
|
+
- Rodar testes unitários
|
|
86
|
+
- Gerar coverage report
|
|
87
|
+
- Fail se coverage < X%
|
|
88
|
+
|
|
89
|
+
**Integration Tests**
|
|
90
|
+
- Rodar com banco de teste
|
|
91
|
+
- Services necessários (database, redis)
|
|
92
|
+
|
|
93
|
+
**Security Scan**
|
|
94
|
+
- Dependency vulnerability check
|
|
95
|
+
- SAST (Static Analysis)
|
|
96
|
+
|
|
97
|
+
**Build**
|
|
98
|
+
- Compilar aplicação
|
|
99
|
+
- Build Docker image (se aplicável)
|
|
100
|
+
- Tag com SHA do commit
|
|
101
|
+
|
|
102
|
+
### 2. Continuous Delivery (CD)
|
|
103
|
+
|
|
104
|
+
#### 2.1 Deploy para Development
|
|
105
|
+
- Trigger: Push em develop
|
|
106
|
+
- Steps de deploy
|
|
107
|
+
- Smoke tests após deploy
|
|
108
|
+
|
|
109
|
+
#### 2.2 Deploy para Staging
|
|
110
|
+
- Trigger: Merge em main ou tag
|
|
111
|
+
- Approval gate (manual ou automático)
|
|
112
|
+
- Steps de deploy
|
|
113
|
+
- E2E tests após deploy
|
|
114
|
+
|
|
115
|
+
#### 2.3 Deploy para Production
|
|
116
|
+
- Trigger: Tag release ou aprovação
|
|
117
|
+
- Approval gate obrigatório
|
|
118
|
+
- Deploy com rollback automático
|
|
119
|
+
- Health checks
|
|
120
|
+
- Notificação de sucesso/falha
|
|
121
|
+
|
|
122
|
+
#### 2.4 Estratégia de Deploy
|
|
123
|
+
- [ ] Rolling update
|
|
124
|
+
- [ ] Blue-green
|
|
125
|
+
- [ ] Canary
|
|
126
|
+
- [ ] Feature flags
|
|
127
|
+
|
|
128
|
+
### 3. Secrets Management
|
|
129
|
+
|
|
130
|
+
- Onde armazenar secrets
|
|
131
|
+
- Como injetar em runtime
|
|
132
|
+
- Rotação de secrets
|
|
133
|
+
|
|
134
|
+
### 4. Caching
|
|
135
|
+
|
|
136
|
+
- Dependências (node_modules, pip cache, maven)
|
|
137
|
+
- Docker layers
|
|
138
|
+
- Build artifacts
|
|
139
|
+
|
|
140
|
+
### 5. Notificações
|
|
141
|
+
|
|
142
|
+
- Slack/Discord/Teams
|
|
143
|
+
- Email
|
|
144
|
+
- Quando notificar (success, failure, always)
|
|
145
|
+
|
|
146
|
+
### 6. Monitoramento de Pipeline
|
|
147
|
+
|
|
148
|
+
- Duração média
|
|
149
|
+
- Taxa de sucesso
|
|
150
|
+
- Alertas de falha
|
|
151
|
+
|
|
152
|
+
### 7. Rollback
|
|
153
|
+
|
|
154
|
+
- Como fazer rollback
|
|
155
|
+
- Automático vs manual
|
|
156
|
+
- Condições de trigger
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Exemplo de Uso
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
Atue como engenheiro DevOps sênior especializado em CI/CD.
|
|
165
|
+
|
|
166
|
+
## Contexto do Projeto
|
|
167
|
+
|
|
168
|
+
Sistema de agendamento para salões de beleza.
|
|
169
|
+
Backend NestJS em containers rodando na AWS.
|
|
170
|
+
|
|
171
|
+
## Stack Tecnológica
|
|
172
|
+
|
|
173
|
+
- Linguagem: TypeScript
|
|
174
|
+
- Framework: NestJS
|
|
175
|
+
- Banco de dados: PostgreSQL
|
|
176
|
+
- Testes: Jest
|
|
177
|
+
- Containerização: Docker
|
|
178
|
+
|
|
179
|
+
## Infraestrutura
|
|
180
|
+
|
|
181
|
+
- Cloud: AWS
|
|
182
|
+
- Orquestração: ECS Fargate
|
|
183
|
+
- Registry: ECR
|
|
184
|
+
|
|
185
|
+
## Repositório
|
|
186
|
+
|
|
187
|
+
- Provider: GitHub
|
|
188
|
+
- Branch Strategy: GitHub Flow
|
|
189
|
+
- Branches: main, feature/*
|
|
190
|
+
|
|
191
|
+
## Ambientes
|
|
192
|
+
|
|
193
|
+
- [x] Development (dev)
|
|
194
|
+
- [x] Staging (stg)
|
|
195
|
+
- [x] Production (prod)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Resposta Esperada (GitHub Actions)
|
|
201
|
+
|
|
202
|
+
### Workflow CI
|
|
203
|
+
|
|
204
|
+
```yaml
|
|
205
|
+
# .github/workflows/ci.yml
|
|
206
|
+
name: CI
|
|
207
|
+
|
|
208
|
+
on:
|
|
209
|
+
push:
|
|
210
|
+
branches: [main]
|
|
211
|
+
pull_request:
|
|
212
|
+
branches: [main]
|
|
213
|
+
|
|
214
|
+
env:
|
|
215
|
+
NODE_VERSION: '20'
|
|
216
|
+
|
|
217
|
+
jobs:
|
|
218
|
+
lint:
|
|
219
|
+
runs-on: ubuntu-latest
|
|
220
|
+
steps:
|
|
221
|
+
- uses: actions/checkout@v4
|
|
222
|
+
- uses: actions/setup-node@v4
|
|
223
|
+
with:
|
|
224
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
225
|
+
cache: 'npm'
|
|
226
|
+
- run: npm ci
|
|
227
|
+
- run: npm run lint
|
|
228
|
+
- run: npm run format:check
|
|
229
|
+
|
|
230
|
+
test:
|
|
231
|
+
runs-on: ubuntu-latest
|
|
232
|
+
services:
|
|
233
|
+
postgres:
|
|
234
|
+
image: postgres:15
|
|
235
|
+
env:
|
|
236
|
+
POSTGRES_PASSWORD: test
|
|
237
|
+
POSTGRES_DB: test
|
|
238
|
+
ports:
|
|
239
|
+
- 5432:5432
|
|
240
|
+
options: >-
|
|
241
|
+
--health-cmd pg_isready
|
|
242
|
+
--health-interval 10s
|
|
243
|
+
--health-timeout 5s
|
|
244
|
+
--health-retries 5
|
|
245
|
+
steps:
|
|
246
|
+
- uses: actions/checkout@v4
|
|
247
|
+
- uses: actions/setup-node@v4
|
|
248
|
+
with:
|
|
249
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
250
|
+
cache: 'npm'
|
|
251
|
+
- run: npm ci
|
|
252
|
+
- run: npm run test:cov
|
|
253
|
+
env:
|
|
254
|
+
DATABASE_URL: postgresql://postgres:test@localhost:5432/test
|
|
255
|
+
- uses: codecov/codecov-action@v3
|
|
256
|
+
with:
|
|
257
|
+
files: ./coverage/lcov.info
|
|
258
|
+
|
|
259
|
+
security:
|
|
260
|
+
runs-on: ubuntu-latest
|
|
261
|
+
steps:
|
|
262
|
+
- uses: actions/checkout@v4
|
|
263
|
+
- run: npm audit --audit-level=high
|
|
264
|
+
- uses: github/codeql-action/init@v2
|
|
265
|
+
with:
|
|
266
|
+
languages: javascript
|
|
267
|
+
- uses: github/codeql-action/analyze@v2
|
|
268
|
+
|
|
269
|
+
build:
|
|
270
|
+
needs: [lint, test, security]
|
|
271
|
+
runs-on: ubuntu-latest
|
|
272
|
+
steps:
|
|
273
|
+
- uses: actions/checkout@v4
|
|
274
|
+
- uses: docker/setup-buildx-action@v3
|
|
275
|
+
- uses: docker/build-push-action@v5
|
|
276
|
+
with:
|
|
277
|
+
context: .
|
|
278
|
+
push: false
|
|
279
|
+
tags: app:${{ github.sha }}
|
|
280
|
+
cache-from: type=gha
|
|
281
|
+
cache-to: type=gha,mode=max
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Workflow CD
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
# .github/workflows/cd.yml
|
|
288
|
+
name: CD
|
|
289
|
+
|
|
290
|
+
on:
|
|
291
|
+
push:
|
|
292
|
+
branches: [main]
|
|
293
|
+
|
|
294
|
+
env:
|
|
295
|
+
AWS_REGION: us-east-1
|
|
296
|
+
ECR_REPOSITORY: salao-api
|
|
297
|
+
ECS_CLUSTER: salao-cluster
|
|
298
|
+
ECS_SERVICE: salao-api-service
|
|
299
|
+
|
|
300
|
+
jobs:
|
|
301
|
+
deploy-staging:
|
|
302
|
+
runs-on: ubuntu-latest
|
|
303
|
+
environment: staging
|
|
304
|
+
steps:
|
|
305
|
+
- uses: actions/checkout@v4
|
|
306
|
+
|
|
307
|
+
- uses: aws-actions/configure-aws-credentials@v4
|
|
308
|
+
with:
|
|
309
|
+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
310
|
+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
311
|
+
aws-region: ${{ env.AWS_REGION }}
|
|
312
|
+
|
|
313
|
+
- uses: aws-actions/amazon-ecr-login@v2
|
|
314
|
+
id: ecr
|
|
315
|
+
|
|
316
|
+
- uses: docker/build-push-action@v5
|
|
317
|
+
with:
|
|
318
|
+
context: .
|
|
319
|
+
push: true
|
|
320
|
+
tags: ${{ steps.ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
|
|
321
|
+
|
|
322
|
+
- name: Deploy ECS
|
|
323
|
+
run: |
|
|
324
|
+
aws ecs update-service \
|
|
325
|
+
--cluster ${{ env.ECS_CLUSTER }}-staging \
|
|
326
|
+
--service ${{ env.ECS_SERVICE }} \
|
|
327
|
+
--force-new-deployment
|
|
328
|
+
|
|
329
|
+
- name: Wait for deployment
|
|
330
|
+
run: |
|
|
331
|
+
aws ecs wait services-stable \
|
|
332
|
+
--cluster ${{ env.ECS_CLUSTER }}-staging \
|
|
333
|
+
--services ${{ env.ECS_SERVICE }}
|
|
334
|
+
|
|
335
|
+
deploy-production:
|
|
336
|
+
needs: deploy-staging
|
|
337
|
+
runs-on: ubuntu-latest
|
|
338
|
+
environment: production
|
|
339
|
+
steps:
|
|
340
|
+
# Similar ao staging, com approval gate configurado no environment
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Checklist Pós-Geração
|
|
346
|
+
|
|
347
|
+
- [ ] CI roda em PRs e push para main
|
|
348
|
+
- [ ] Lint e format verificados
|
|
349
|
+
- [ ] Testes unitários com coverage
|
|
350
|
+
- [ ] Security scan configurado
|
|
351
|
+
- [ ] Build de Docker image
|
|
352
|
+
- [ ] Deploy automático para staging
|
|
353
|
+
- [ ] Deploy para produção com approval
|
|
354
|
+
- [ ] Secrets configurados nos environments
|
|
355
|
+
- [ ] Cache configurado para dependências
|
|
356
|
+
- [ ] Notificações configuradas
|
|
357
|
+
- [ ] Rollback documentado
|
|
358
|
+
- [ ] Salvar workflows e `docs/10-devops/pipeline.md`
|