@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.
Files changed (112) hide show
  1. package/.cspell.json +104 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintignore +3 -0
  4. package/.eslintrc.json +24 -0
  5. package/.github/workflows/publish-npm.yml +32 -0
  6. package/.github/workflows/release-please.yml +25 -0
  7. package/.gitkeep +0 -0
  8. package/.husky/_/post-merge +0 -0
  9. package/.prettierignore +4 -0
  10. package/.prettierrc +8 -0
  11. package/.vscode/settings.json +19 -0
  12. package/CHANGELOG.md +47 -0
  13. package/README.md +115 -0
  14. package/VSCODE_EXTENSIONS.md +11 -0
  15. package/bin/index.js +4 -0
  16. package/docs/HOOKS-SYSTEM.md +172 -0
  17. package/git-deploy.sh +74 -0
  18. package/index.php +17 -0
  19. package/lib/cli.js +15 -0
  20. package/lib/commands/init.js +132 -0
  21. package/lib/core/generator.js +261 -0
  22. package/lib/core/hook-manager.js +172 -0
  23. package/lib/core/infer-ci-capabilities.js +119 -0
  24. package/lib/prompts/index.js +105 -0
  25. package/lib/prompts/loadModulePrompts.js +27 -0
  26. package/lib/utils/generate-from-template.js +17 -0
  27. package/lib/utils/git.js +17 -0
  28. package/lib/utils/logger.js +28 -0
  29. package/modules/deploy/index.js +39 -0
  30. package/modules/deploy/prompts.js +27 -0
  31. package/modules/deploy/templates/.github/workflows/ci.yml.hbs +103 -0
  32. package/modules/deploy/templates/.gitlab/gitlab-ci.yml.hbs +154 -0
  33. package/modules/deploy/templates/bitbucket-pipelines.yml.hbs +97 -0
  34. package/modules/docs/index.js +3 -0
  35. package/modules/docs/prompts.js +8 -0
  36. package/modules/docs/templates/README.md.hbs +160 -0
  37. package/modules/docs/templates/docs/Arquitetura.md +399 -0
  38. package/modules/docs/templates/docs/Deploy-Pipeline.md +113 -0
  39. package/modules/docs/templates/docs/Desenvolvimento.md +1116 -0
  40. package/modules/docs/templates/docs/Getting-Started.md +493 -0
  41. package/modules/docs/templates/docs/Infraestrutura.md +211 -0
  42. package/modules/docs/templates/docs/Monitoramento.md +302 -0
  43. package/modules/docs/templates/docs/Sync-the-Production-DB-with-the-Staging-DB.md +8 -0
  44. package/modules/docs/templates/docs/Troubleshooting.md +3 -0
  45. package/modules/git/.commitlintrc.json +136 -0
  46. package/modules/git/.github/PULL_REQUEST_TEMPLATE.md +42 -0
  47. package/modules/git/.gitlab/merge_request_templates/default.md +42 -0
  48. package/modules/git/.gitmessage +29 -0
  49. package/modules/git/.husky/commit-msg +4 -0
  50. package/modules/git/.husky/pre-commit +27 -0
  51. package/modules/git/.lintstagedrc.json +7 -0
  52. package/modules/git/.vscode/commit-instructions.md +59 -0
  53. package/modules/git/.vscode/conventional-commits.code-snippets +62 -0
  54. package/modules/git/.vscode/copilot.json +39 -0
  55. package/modules/git/docs/CONVENTIONAL-COMMITS.md +131 -0
  56. package/modules/git/index.js +137 -0
  57. package/modules/git/prompts.js +23 -0
  58. package/modules/git/templates/.lando.yml.hbs +13 -0
  59. package/modules/git/templates/package.json.hbs +15 -0
  60. package/modules/git/templates/workspace.json.hbs +114 -0
  61. package/modules/lint/.eslintignore +36 -0
  62. package/modules/lint/.eslintrc.json +8 -0
  63. package/modules/lint/.prettierignore +36 -0
  64. package/modules/lint/.prettierrc.json +29 -0
  65. package/modules/lint/.stylelintignore +19 -0
  66. package/modules/lint/.stylelintrc.json +9 -0
  67. package/modules/lint/index.js +15 -0
  68. package/modules/lint/pint.json +26 -0
  69. package/modules/lint/prompts.js +16 -0
  70. package/modules/lint/templates/.lando.yml.hbs +10 -0
  71. package/modules/lint/templates/package.json.hbs +16 -0
  72. package/modules/lint/templates/workspace.json.hbs +56 -0
  73. package/modules/php/index.js +3 -0
  74. package/modules/php/prompts.js +8 -0
  75. package/modules/php/scripts/php-wrapper.sh +38 -0
  76. package/modules/php/scripts/pint-wrapper.sh +44 -0
  77. package/modules/php/templates/.lando.yml.hbs +11 -0
  78. package/modules/php/templates/composer.json.hbs +6 -0
  79. package/modules/php/templates/workspace.json.hbs +74 -0
  80. package/modules/redis/prompts.js +8 -0
  81. package/modules/redis/templates/.lando.yml.hbs +8 -0
  82. package/modules/sage/index.js +20 -0
  83. package/modules/sage/prompts.js +16 -0
  84. package/modules/sage/templates/.lando.yml.hbs +64 -0
  85. package/modules/sage/templates/theme/composer.json.hbs +18 -0
  86. package/modules/sage/templates/theme/package.json.hbs +11 -0
  87. package/modules/sage/templates/theme/style.css.hbs +13 -0
  88. package/modules/sage/templates/theme/vite.config.js.hbs +53 -0
  89. package/modules/sage/templates/workspace.json.hbs +67 -0
  90. package/modules/test-directory/assets/module-file.txt +1 -0
  91. package/modules/test-directory/index.js +19 -0
  92. package/modules/test-directory/prompts.js +8 -0
  93. package/modules/test-directory/test-assets/file1.txt +1 -0
  94. package/modules/test-directory/test-assets/file2.txt +1 -0
  95. package/modules/test-directory/test-assets/subfolder/config.json +4 -0
  96. package/package.json +54 -0
  97. package/release-please-config.json +17 -0
  98. package/server/php/php.ini +48 -0
  99. package/server/www/rocket.conf +283 -0
  100. package/templates/.editorconfig.hbs +39 -0
  101. package/templates/.env.hbs +48 -0
  102. package/templates/.gitignore.hbs +86 -0
  103. package/templates/.lando.yml.hbs +44 -0
  104. package/templates/README.md.hbs +12 -0
  105. package/templates/composer.json.hbs +60 -0
  106. package/templates/package.json.hbs +47 -0
  107. package/templates/server/cmd/install-wp.sh.hbs +58 -0
  108. package/templates/server/www/vhosts.conf.hbs +71 -0
  109. package/templates/workspace.json.hbs +177 -0
  110. package/test-copy-directory.js +43 -0
  111. package/test-overwrite.js +45 -0
  112. 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