@codigodoleo/wp-kit 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/.cspell.json +104 -0
- package/.editorconfig +13 -0
- package/.eslintignore +3 -0
- package/.eslintrc.json +24 -0
- package/.github/workflows/publish-npm.yml +32 -0
- package/.github/workflows/release-please.yml +25 -0
- package/.gitkeep +0 -0
- package/.husky/_/post-merge +0 -0
- package/.prettierignore +4 -0
- package/.prettierrc +8 -0
- package/.vscode/settings.json +19 -0
- package/CHANGELOG.md +47 -0
- package/README.md +115 -0
- package/VSCODE_EXTENSIONS.md +11 -0
- package/bin/index.js +4 -0
- package/docs/HOOKS-SYSTEM.md +172 -0
- package/git-deploy.sh +74 -0
- package/index.php +17 -0
- package/lib/cli.js +15 -0
- package/lib/commands/init.js +132 -0
- package/lib/core/generator.js +261 -0
- package/lib/core/hook-manager.js +172 -0
- package/lib/core/infer-ci-capabilities.js +119 -0
- package/lib/prompts/index.js +105 -0
- package/lib/prompts/loadModulePrompts.js +27 -0
- package/lib/utils/generate-from-template.js +17 -0
- package/lib/utils/git.js +17 -0
- package/lib/utils/logger.js +28 -0
- package/modules/deploy/index.js +39 -0
- package/modules/deploy/prompts.js +27 -0
- package/modules/deploy/templates/.github/workflows/ci.yml.hbs +103 -0
- package/modules/deploy/templates/.gitlab/gitlab-ci.yml.hbs +154 -0
- package/modules/deploy/templates/bitbucket-pipelines.yml.hbs +97 -0
- package/modules/docs/index.js +3 -0
- package/modules/docs/prompts.js +8 -0
- package/modules/docs/templates/README.md.hbs +160 -0
- package/modules/docs/templates/docs/Arquitetura.md +399 -0
- package/modules/docs/templates/docs/Deploy-Pipeline.md +113 -0
- package/modules/docs/templates/docs/Desenvolvimento.md +1116 -0
- package/modules/docs/templates/docs/Getting-Started.md +493 -0
- package/modules/docs/templates/docs/Infraestrutura.md +211 -0
- package/modules/docs/templates/docs/Monitoramento.md +302 -0
- package/modules/docs/templates/docs/Sync-the-Production-DB-with-the-Staging-DB.md +8 -0
- package/modules/docs/templates/docs/Troubleshooting.md +3 -0
- package/modules/git/.commitlintrc.json +136 -0
- package/modules/git/.github/PULL_REQUEST_TEMPLATE.md +42 -0
- package/modules/git/.gitlab/merge_request_templates/default.md +42 -0
- package/modules/git/.gitmessage +29 -0
- package/modules/git/.husky/commit-msg +4 -0
- package/modules/git/.husky/pre-commit +27 -0
- package/modules/git/.lintstagedrc.json +7 -0
- package/modules/git/.vscode/commit-instructions.md +59 -0
- package/modules/git/.vscode/conventional-commits.code-snippets +62 -0
- package/modules/git/.vscode/copilot.json +39 -0
- package/modules/git/docs/CONVENTIONAL-COMMITS.md +131 -0
- package/modules/git/index.js +137 -0
- package/modules/git/prompts.js +23 -0
- package/modules/git/templates/.lando.yml.hbs +13 -0
- package/modules/git/templates/package.json.hbs +15 -0
- package/modules/git/templates/workspace.json.hbs +114 -0
- package/modules/lint/.eslintignore +36 -0
- package/modules/lint/.eslintrc.json +8 -0
- package/modules/lint/.prettierignore +36 -0
- package/modules/lint/.prettierrc.json +29 -0
- package/modules/lint/.stylelintignore +19 -0
- package/modules/lint/.stylelintrc.json +9 -0
- package/modules/lint/index.js +15 -0
- package/modules/lint/pint.json +26 -0
- package/modules/lint/prompts.js +16 -0
- package/modules/lint/templates/.lando.yml.hbs +10 -0
- package/modules/lint/templates/package.json.hbs +16 -0
- package/modules/lint/templates/workspace.json.hbs +56 -0
- package/modules/php/index.js +3 -0
- package/modules/php/prompts.js +8 -0
- package/modules/php/scripts/php-wrapper.sh +38 -0
- package/modules/php/scripts/pint-wrapper.sh +44 -0
- package/modules/php/templates/.lando.yml.hbs +11 -0
- package/modules/php/templates/composer.json.hbs +6 -0
- package/modules/php/templates/workspace.json.hbs +74 -0
- package/modules/redis/prompts.js +8 -0
- package/modules/redis/templates/.lando.yml.hbs +8 -0
- package/modules/sage/index.js +20 -0
- package/modules/sage/prompts.js +16 -0
- package/modules/sage/templates/.lando.yml.hbs +64 -0
- package/modules/sage/templates/theme/composer.json.hbs +18 -0
- package/modules/sage/templates/theme/package.json.hbs +11 -0
- package/modules/sage/templates/theme/style.css.hbs +13 -0
- package/modules/sage/templates/theme/vite.config.js.hbs +53 -0
- package/modules/sage/templates/workspace.json.hbs +67 -0
- package/modules/test-directory/assets/module-file.txt +1 -0
- package/modules/test-directory/index.js +19 -0
- package/modules/test-directory/prompts.js +8 -0
- package/modules/test-directory/test-assets/file1.txt +1 -0
- package/modules/test-directory/test-assets/file2.txt +1 -0
- package/modules/test-directory/test-assets/subfolder/config.json +4 -0
- package/package.json +54 -0
- package/release-please-config.json +17 -0
- package/server/php/php.ini +48 -0
- package/server/www/rocket.conf +283 -0
- package/templates/.editorconfig.hbs +39 -0
- package/templates/.env.hbs +48 -0
- package/templates/.gitignore.hbs +86 -0
- package/templates/.lando.yml.hbs +44 -0
- package/templates/README.md.hbs +12 -0
- package/templates/composer.json.hbs +60 -0
- package/templates/package.json.hbs +47 -0
- package/templates/server/cmd/install-wp.sh.hbs +58 -0
- package/templates/server/www/vhosts.conf.hbs +71 -0
- package/templates/workspace.json.hbs +177 -0
- package/test-copy-directory.js +43 -0
- package/test-overwrite.js +45 -0
- package/wp-config.php +190 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Pipeline CI/CD - Pipefy Website
|
|
2
|
+
|
|
3
|
+
## Visão Geral
|
|
4
|
+
Pipeline automatizado para deploy do WordPress da Pipefy com integração ao fluxo de desenvolvimento da equipe.
|
|
5
|
+
|
|
6
|
+
## Ambientes e Triggers
|
|
7
|
+
|
|
8
|
+
### Development
|
|
9
|
+
- **Trigger**: Push na branch `develop`
|
|
10
|
+
- **Namespace**: `website-dev`
|
|
11
|
+
- **URL Cache**: `assets-site.staticpipefy.com/development/`
|
|
12
|
+
|
|
13
|
+
### Staging
|
|
14
|
+
- **Trigger**: Push na branch `staging`
|
|
15
|
+
- **Namespace**: `website-stg`
|
|
16
|
+
- **URL Cache**: `assets-site.staticpipefy.com/staging/`
|
|
17
|
+
|
|
18
|
+
### Production
|
|
19
|
+
- **Trigger**: Push na branch `master` (apenas de branches `release/*` ou `hotfix/*`)
|
|
20
|
+
- **Namespace**: `website-prod`
|
|
21
|
+
- **URL Cache**: `assets-site.staticpipefy.com/production/`
|
|
22
|
+
|
|
23
|
+
## Stages do Pipeline
|
|
24
|
+
|
|
25
|
+
### 1. Validation
|
|
26
|
+
- **kubeval**: Valida arquivos Kubernetes antes do deploy
|
|
27
|
+
|
|
28
|
+
### 2. Compiler
|
|
29
|
+
- **build-wordpress**: Compila tema e plugins WordPress
|
|
30
|
+
|
|
31
|
+
### 3. Image Build
|
|
32
|
+
- **image-build**: Constrói imagem Docker com tag do commit
|
|
33
|
+
|
|
34
|
+
### 4. Deploy
|
|
35
|
+
- **deploy**: Deploy no ambiente (manual)
|
|
36
|
+
- **clear-cache**: Limpa cache do Cloudflare
|
|
37
|
+
|
|
38
|
+
### 5. Tests
|
|
39
|
+
- **smoke-stg-website**: Testes de fumaça no staging
|
|
40
|
+
- **smoke-prod-website**: Testes de fumaça na produção
|
|
41
|
+
|
|
42
|
+
### 6. Rollback
|
|
43
|
+
- **rollback**: Executado automaticamente em caso de falha
|
|
44
|
+
|
|
45
|
+
## Fluxo de Desenvolvimento Integrado
|
|
46
|
+
|
|
47
|
+
### Feature Development
|
|
48
|
+
1. Desenvolver na branch `feature/*`
|
|
49
|
+
2. Merge para `develop` → Deploy automático no Development
|
|
50
|
+
3. Teste no ambiente de desenvolvimento
|
|
51
|
+
|
|
52
|
+
### Release Process
|
|
53
|
+
1. Criar branch `release/*` a partir de `develop`
|
|
54
|
+
2. Merge para `staging` → Deploy no Staging
|
|
55
|
+
3. Testes de aceitação no staging
|
|
56
|
+
4. Merge para `master` → Deploy manual na Production
|
|
57
|
+
|
|
58
|
+
### Hotfix Process
|
|
59
|
+
1. Criar branch `hotfix/*` a partir de `master`
|
|
60
|
+
2. Deploy direto na production após aprovação
|
|
61
|
+
3. Backport para `develop` e `staging`
|
|
62
|
+
|
|
63
|
+
## Jobs Principais
|
|
64
|
+
|
|
65
|
+
| Job | Objetivo | Quando Executa |
|
|
66
|
+
|-----|----------|---------------|
|
|
67
|
+
| `build-wordpress` | Compila código WordPress | Todos os pushes |
|
|
68
|
+
| `image-build` | Cria imagem Docker | Após compilação |
|
|
69
|
+
| `deploy` | Deploy no K8s | Manual (staging/prod) |
|
|
70
|
+
| `clear-cache` | Limpa cache CDN | Após deploy |
|
|
71
|
+
| `smoke-tests` | Valida deploy | Após deploy |
|
|
72
|
+
|
|
73
|
+
## Configurações Importantes
|
|
74
|
+
|
|
75
|
+
- **Registry**: `$CI_REGISTRY_IMAGE:latest`
|
|
76
|
+
- **Kubernetes**: Oracle Cloud Infrastructure (OCI)
|
|
77
|
+
- **CDN**: Cloudflare
|
|
78
|
+
- **Storage**: PVC com `ReadWriteMany`
|
|
79
|
+
|
|
80
|
+
## Monitoramento
|
|
81
|
+
|
|
82
|
+
- Logs disponíveis no GitLab CI/CD
|
|
83
|
+
- Métricas de performance via smoke tests
|
|
84
|
+
- Notificações de falha automáticas
|
|
85
|
+
|
|
86
|
+
## ⚠️ Restauração de Banco de Dados (Staging)
|
|
87
|
+
|
|
88
|
+
> **🚨 AÇÃO DESTRUTIVA - ACESSO RESTRITO**
|
|
89
|
+
> Este processo substitui completamente o banco de dados do staging pelos dados de produção.
|
|
90
|
+
> **Permitido apenas para:** Desenvolvedores Seniores e Owners
|
|
91
|
+
> **Consequência:** Todos os dados atuais do staging serão **perdidos permanentemente**
|
|
92
|
+
|
|
93
|
+
### 📋 Processo de Restauração
|
|
94
|
+
|
|
95
|
+
1. **🎯 Acesse o GitLab:**
|
|
96
|
+
- Navegue até [CI/CD → Schedules](https://gitlab.com/pipefy/wordpress/pipefy-website/-/pipeline_schedules)
|
|
97
|
+
|
|
98
|
+
2. **📥 Backup do Banco de Produção:**
|
|
99
|
+
- Clique no botão ▶️ **Play** no pipeline agendado `Download Prod Database`
|
|
100
|
+
- ⏱️ Aguarde a conclusão (cria backup e armazena no bucket S3)
|
|
101
|
+
|
|
102
|
+
3. **🔄 Replicação para Staging:**
|
|
103
|
+
- Após finalizar o step anterior, clique no botão ▶️ **Play** no pipeline `Replicate Production DB into Staging DB`
|
|
104
|
+
- 📦 Este job utiliza o backup armazenado no bucket S3
|
|
105
|
+
|
|
106
|
+
4. **✅ Finalização:**
|
|
107
|
+
- Staging atualizado com dados de produção
|
|
108
|
+
- 🧪 Execute testes para validar a integridade dos dados
|
|
109
|
+
|
|
110
|
+
### ⚡ Importante
|
|
111
|
+
- ⏰ O processo pode levar alguns minutos dependendo do tamanho do banco
|
|
112
|
+
- 🔍 Monitore os logs dos jobs para identificar possíveis erros
|
|
113
|
+
- 📞 Em caso de problemas, contate imediatamente a equipe de infraestrutura
|