UNPKG

backend-mcp

Version:

Generador automático de backends con Node.js, Express, Prisma y módulos configurables. Servidor MCP compatible con npx para agentes IA. Soporta PostgreSQL, MySQL, MongoDB y SQLite.

192 lines (150 loc) 3.61 kB
# Módulo CI/CD Módulo para configuración de integración continua y despliegue continuo en proyectos backend. ## Características - Configuración automática de GitHub Actions - Pipeline de testing automatizado - Despliegue automático a staging/producción - Validación de código con ESLint y Prettier - Análisis de seguridad con npm audit - Notificaciones de estado del build ## Configuración ### Requisitos - Node.js 16+ - Repositorio Git configurado - Acceso a GitHub Actions (para GitHub) ### Variables de Entorno ```bash # Configuración del CI/CD CI_PROVIDER=github # github, gitlab, jenkins DEPLOY_ENVIRONMENT=staging # staging, production NOTIFY_SLACK_WEBHOOK=https://hooks.slack.com/... ``` ## Uso ### Configuración Básica ```javascript const { initCI } = require('./modules/ci'); // Configurar CI/CD básico await initCI({ provider: 'github', environment: 'staging', notifications: { slack: process.env.NOTIFY_SLACK_WEBHOOK } }); ``` ### Pipeline Personalizado ```javascript // Configurar pipeline personalizado await initCI({ provider: 'github', pipeline: { test: true, lint: true, security: true, deploy: { staging: true, production: false } } }); ``` ## Archivos Generados - `.github/workflows/ci.yml` - Pipeline principal de CI/CD - `.github/workflows/deploy.yml` - Workflow de despliegue - `scripts/deploy.sh` - Script de despliegue - `docker-compose.ci.yml` - Configuración para testing ## Ejemplos ### GitHub Actions Básico ```yaml name: CI/CD Pipeline on: push: branches: [ main, develop ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' - run: npm ci - run: npm test - run: npm run lint ``` ### Despliegue Automático ```yaml deploy: needs: test runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: Deploy to staging run: | echo "Deploying to staging..." # Comandos de despliegue ``` ## Configuración Avanzada ### Múltiples Entornos ```javascript await initCI({ environments: { staging: { branch: 'develop', url: 'https://staging.example.com' }, production: { branch: 'main', url: 'https://example.com', requiresApproval: true } } }); ``` ### Notificaciones ```javascript await initCI({ notifications: { slack: { webhook: process.env.SLACK_WEBHOOK, channel: '#deployments' }, email: { recipients: ['team@example.com'], onFailure: true } } }); ``` ## Troubleshooting ### Errores Comunes 1. **Pipeline falla en tests** - Verificar que todas las dependencias estén instaladas - Revisar variables de entorno requeridas 2. **Despliegue falla** - Verificar credenciales de despliegue - Comprobar conectividad con el servidor 3. **Notificaciones no llegan** - Verificar webhook de Slack - Comprobar configuración de email ### Logs y Debugging ```bash # Ver logs del último despliegue npm run ci:logs # Ejecutar pipeline localmente npm run ci:local # Validar configuración npm run ci:validate ``` ## Contribuir Para contribuir a este módulo: 1. Fork el repositorio 2. Crea una rama para tu feature 3. Añade tests para nuevas funcionalidades 4. Ejecuta `npm test` para verificar 5. Crea un Pull Request ## Licencia MIT License - ver archivo LICENSE para más detalles.