ci-cd-pipeline
npx machina-cli add skill 686f6c61/alfred-dev/ci-cd-pipeline --openclawConfigurar pipeline CI/CD
Resumen
Este skill genera la configuración de un pipeline de integración y despliegue continuo adaptado al stack y la plataforma del proyecto. El pipeline automatiza las verificaciones de calidad (lint, tests, seguridad) y el despliegue, eliminando pasos manuales propensos a error.
Un buen pipeline es rápido (feedback en minutos, no en horas), fiable (no falla aleatoriamente) y seguro (no expone secretos ni permite despliegues sin verificación).
Proceso
-
Detectar la plataforma de CI/CD. Identificar dónde se ejecutará el pipeline:
- GitHub Actions:
.github/workflows/. - GitLab CI:
.gitlab-ci.yml. - Bitbucket Pipelines:
bitbucket-pipelines.yml. - CircleCI:
.circleci/config.yml. - Jenkins:
Jenkinsfile.
Si no hay preferencia, recomendar GitHub Actions por su ecosistema y facilidad de uso.
- GitHub Actions:
-
Definir los stages del pipeline. El orden estándar es:
Stage Propósito Falla si... Lint Verificar estilo y errores estáticos Hay errores de linter Test Ejecutar tests unitarios e integración Algún test falla Build Compilar/construir el artefacto La build falla Security Escanear vulnerabilidades Hay CVE críticos o altos Deploy Desplegar al entorno objetivo El despliegue falla -
Configurar caché de dependencias. Evitar descargar las mismas dependencias en cada ejecución:
- Node.js: cachear
node_modulescon key basada enpackage-lock.json. - Python: cachear el directorio de pip con key basada en
requirements.txt. - Rust: cachear
target/y el directorio de cargo.
- Node.js: cachear
-
Gestionar secretos. Los secretos (tokens, contraseñas, API keys) nunca van en el código:
- Usar el sistema de secretos de la plataforma (GitHub Secrets, GitLab Variables, etc.).
- Referenciar como variables de entorno en el pipeline.
- Documentar qué secretos son necesarios y dónde se configuran.
-
Configurar triggers. Definir cuándo se ejecuta el pipeline:
- Push a ramas principales (main, develop): pipeline completo.
- Pull requests: lint + test + build (sin deploy).
- Tags de versión: pipeline completo con deploy a producción.
-
Configurar notificaciones de fallo. El equipo debe enterarse rápidamente cuando algo falla:
- Notificación a Slack, email o similar cuando un stage falla.
- Indicar qué stage falló y enlace al log.
-
Configurar estrategia de deploy. Según el entorno:
- Staging: deploy automático en cada merge a develop.
- Producción: deploy manual o automático en cada tag de versión, según la preferencia del equipo.
-
Documentar el pipeline. Añadir un comentario en el fichero de configuración explicando cada stage y cómo añadir nuevos pasos.
Criterios de éxito
- El pipeline cubre lint, test, build, security y deploy.
- Las dependencias se cachean para acelerar la ejecución.
- Los secretos se gestionan vía variables de entorno de la plataforma, no en el código.
- Los triggers están configurados para PRs, pushes y tags.
- Hay notificaciones de fallo configuradas.
- El fichero de configuración está documentado con comentarios.
Source
git clone https://github.com/686f6c61/alfred-dev/blob/main/skills/devops/ci-cd-pipeline/SKILL.mdView on GitHub Overview
Este skill genera la configuración de un pipeline de CI/CD adaptado al stack y la plataforma del proyecto. Automatiza las verificaciones de calidad (lint, tests, seguridad) y el despliegue, reduciendo errores manuales y acelerando el feedback.
How This Skill Works
Detecta la plataforma de CI/CD (GitHub Actions, GitLab CI, Bitbucket Pipelines, CircleCI, Jenkins) y genera la configuración correspondiente. Define los stages (Lint, Test, Build, Security, Deploy), establece caché de dependencias, gestiona secretos mediante variables de entorno de la plataforma, configura triggers y notificaciones, y documenta cada paso en el fichero de configuración.
When to Use It
- Cuando necesitas automatizar lint, tests y despliegue para acelerar el feedback.
- Al migrar un proyecto a CI/CD o al estandarizar pipelines entre repositorios.
- Cuando quieres evitar secretos en el código y gestionar credenciales vía la plataforma.
- Para proyectos que requieren notificaciones rápidas ante fallos y trazabilidad de logs.
- Al definir despliegues a staging y producción con reglas claras de despliegue.
Quick Start
- Step 1: Detecta la plataforma de CI/CD y crea el fichero de configuración adecuado (.github/workflows/, .gitlab-ci.yml, etc.).
- Step 2: Define los stages Lint, Test, Build, Security y Deploy, con reglas de fallo claras.
- Step 3: Configura caché de dependencias, secrets como variables de entorno y triggers (PRs, pushes, tags); añade comentarios explicativos y notificaciones.
Best Practices
- Cubre lint, test, build, security y deploy en el pipeline para un ciclo completo.
- Cachea dependencias con claves basadas en archivos de lock (p. ej., package-lock.json, requirements.txt).
- Gestiona secretos vía variables de entorno de la plataforma y no los codifiques en el repositorio.
- Configura triggers para pushes a ramas, pull requests y tags de versión.
- Documenta cada stage con comentarios en el fichero de configuración y explica cómo añadir nuevos pasos.
Example Use Cases
- GitHub Actions para Node.js: cache de node_modules, lint, tests, build, seguridad y deployment a staging/producción mediante tags.
- GitLab CI para Python: caching de requirements.txt, ejecución de unitarios e integración, y deployment a producción tras merge.
- CircleCI para Rust: caching de target/ y cargo, pipeline con lint, test y deploy automático en release.
- Jenkinsfile para Java: lint, tests, build y despliegue a staging con aprobación para producción.
- Bitbucket Pipelines para una app multi-service: notificaciones a Slack ante fallos y despliegues coordinados.