Skills Agentes

Ci Cd And Automation

Automatiza la configuración de pipelines de CI/CD: úsalo al montar o modificar pipelines de build y despliegue, o al configurar puertas de calidad y test runners en CI.

Reemplaza a: Testing manual antes de cada release

Estrellas
87.7k

en todo el repo

Actividad
37

0–100, la ruta de este skill

Actualizado
hace 4 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2.8k tok

52 tok en reposo

Paquete
1 archivo

11 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add addyosmani/agent-skills --skill ci-cd-and-automation --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Configura pipelines de CI/CD con puertas de calidad: lint, type check, tests, build, auditoría de seguridad y tamaño de bundle
  • Define estrategias de despliegue como preview deployments, feature flags, staged rollouts y rollback
  • Establece patrones para alimentar los fallos de CI de vuelta al agente para que los corrija
  • Optimiza pipelines lentos con caché, paralelismo, path filters y matrix builds

Úsalo cuando

  • Configurar el pipeline de CI de un proyecto nuevo
  • Añadir o modificar checks automatizados
  • Configurar pipelines de despliegue
  • Depurar fallos de CI

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Configura un pipeline de GitHub Actions para lint, tests y build
    • La CI está fallando, ayúdame a arreglarla y a volver a lanzarla
    • Añade despliegues de preview y rollback a mi flujo de deploy
    • Necesito optimizar un pipeline de CI que tarda más de 10 minutos

    SKILL.md

    En inglés

    CI/CD and Automation

    Overview

    Automate quality gates so that no change reaches production without passing tests, lint, type checking, and build. CI/CD is the enforcement mechanism for every other skill — it catches what humans and agents miss, and it does so consistently on every single change.

    Shift Left: Catch problems as early in the pipeline as possible. A bug caught in linting costs minutes; the same bug caught in production costs hours. Move checks upstream — static analysis before tests, tests before staging, staging before production.

    Faster is Safer: Smaller batches and more frequent releases reduce risk, not increase it. A deployment with 3 changes is easier to debug than one with 30. Frequent releases build confidence in the release process itself.

    When to Use

    • Setting up a new project's CI pipeline
    • Adding or modifying automated checks
    • Configuring deployment pipelines
    • When a change should trigger automated verification
    • Debugging CI failures

    The Quality Gate Pipeline

    Every change goes through these gates before merge:

    Pull Request Opened
        │
        ▼
    ┌─────────────────┐
    │   LINT CHECK     │  eslint, prettier
    │   ↓ pass         │
    │   TYPE CHECK     │  tsc --noEmit
    │   ↓ pass         │
    │   UNIT TESTS     │  jest/vitest
    │   ↓ pass         │
    │   BUILD          │  npm run build
    │   ↓ pass         │
    │   INTEGRATION    │  API/DB tests
    │   ↓ pass         │
    │   E2E (optional) │  Playwright/Cypress
    │   ↓ pass         │
    │   SECURITY AUDIT │  npm audit
    │   ↓ pass         │
    │   BUNDLE SIZE    │  bundlesize check
    └─────────────────┘
        │
        ▼
      Ready for review
    

    No gate can be skipped. If lint fails, fix lint — don't disable the rule. If a test fails, fix the code — don't skip the test.

    GitHub Actions Configuration

    Basic CI Pipeline

    # .github/workflows/ci.yml
    name: CI
    
    on:
      pull_request:
        branches: [main]
      push:
        branches: [main]
    
    jobs:
      quality:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
    
          - uses: actions/setup-node@v4
            with:
              node-version: '22'
              cache: 'npm'
    
          - name: Install dependencies
            run: npm ci
    
          - name: Lint
            run: npm run lint
    
          - name: Type check
            run: npx tsc --noEmit
    
          - name: Test
            run: npm test -- --coverage
    
          - name: Build
            run: npm run build
    
          - name: Security audit
            run: npm audit --audit-level=high
    

    With Database Integration Tests

      integration:
        runs-on: ubuntu-latest
        services:
          postgres:
            image: postgres:16
            env:
              POSTGRES_DB: testdb
              POSTGRES_USER: ci_user
              POSTGRES_PASSWORD: ${{ secrets.CI_DB_PASSWORD }}
            ports:
              - 5432:5432
            options: >-
              --health-cmd pg_isready
              --health-interval 10s
              --health-timeout 5s
              --health-retries 5
    
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '22'
              cache: 'npm'
          - run: npm ci
          - name: Run migrations
            run: npx prisma migrate deploy
            env:
              DATABASE_URL: postgresql://ci_user:${{ secrets.CI_DB_PASSWORD }}@localhost:5432/testdb
          - name: Integration tests
            run: npm run test:integration
            env:
              DATABASE_URL: postgresql://ci_user:${{ secrets.CI_DB_PASSWORD }}@localhost:5432/testdb
    

    Note: Even for CI-only test databases, use GitHub Secrets for credentials rather than hardcoding values. This builds good habits and prevents accidental reuse of test credentials in other contexts.

    E2E Tests

      e2e:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '22'
              cache: 'npm'
          - run: npm ci
          - name: Install Playwright
            run: npx playwright install --with-deps chromium
          - name: Build
            run: npm run build
          - name: Run E2E tests
            run: npx playwright test
          - uses: actions/upload-artifact@v4
            if: failure()
            with:
              name: playwright-report
              path: playwright-report/
    

    Feeding CI Failures Back to Agents

    The power of CI with AI agents is the feedback loop. When CI fails:

    CI fails
        │
        ▼
    Copy the failure output
        │
        ▼
    Feed it to the agent:
    "The CI pipeline failed with this error:
    [paste specific error]
    Fix the issue and verify locally before pushing again."
        │
        ▼
    Agent fixes → pushes → CI runs again
    

    Key patterns:

    Lint failure → Agent runs `npm run lint --fix` and commits
    Type error  → Agent reads the error location and fixes the type
    Test failure → Agent follows debugging-and-error-recovery skill
    Build error → Agent checks config and dependencies
    

    Deployment Strategies

    Preview Deployments

    Every PR gets a preview deployment for manual testing:

    # Deploy preview on PR (Vercel/Netlify/etc.)
    deploy-preview:
      runs-on: ubuntu-latest
      if: github.event_name == 'pull_request'
      steps:
        - uses: actions/checkout@v4
        - name: Deploy preview
          run: npx vercel --token=${{ secrets.VERCEL_TOKEN }}
    

    Feature Flags

    Feature flags decouple deployment from release. Deploy incomplete or risky features behind flags so you can:

    • Ship code without enabling it. Merge to main early, enable when ready.
    • Roll back without redeploying. Disable the flag instead of reverting code.
    • Canary new features. Enable for 1% of users, then 10%, then 100%.
    • Run A/B tests. Compare behavior with and without the feature.
    // Simple feature flag pattern
    if (featureFlags.isEnabled('new-checkout-flow', { userId })) {
      return renderNewCheckout();
    }
    return renderLegacyCheckout();
    

    Flag lifecycle: Create → Enable for testing → Canary → Full rollout → Remove the flag and dead code. Flags that live forever become technical debt — set a cleanup date when you create them.

    Staged Rollouts

    PR merged to main
        │
        ▼
      Staging deployment (auto)
        │ Manual verification
        ▼
      Production deployment (manual trigger or auto after staging)
        │
        ▼
      Monitor for errors (15-minute window)
        │
        ├── Errors detected → Rollback
        └── Clean → Done
    

    Rollback Plan

    Every deployment should be reversible:

    # Manual rollback workflow
    name: Rollback
    on:
      workflow_dispatch:
        inputs:
          version:
            description: 'Version to rollback to'
            required: true
    
    jobs:
      rollback:
        runs-on: ubuntu-latest
        steps:
          - name: Rollback deployment
            run: |
              # Deploy the specified previous version
              npx vercel rollback ${{ inputs.version }}
    

    Environment Management

    .env.example       → Committed (template for developers)
    .env                → NOT committed (local development)
    .env.test           → Committed (test environment, no real secrets)
    CI secrets          → Stored in GitHub Secrets / vault
    Production secrets  → Stored in deployment platform / vault
    

    CI should never have production secrets. Use separate secrets for CI testing.

    Automation Beyond CI

    Dependabot / Renovate

    # .github/dependabot.yml
    version: 2
    updates:
      - package-ecosystem: npm
        directory: /
        schedule:
          interval: weekly
        open-pull-requests-limit: 5
    

    Build Cop Role

    Designate someone responsible for keeping CI green. When the build breaks, the Build Cop's job is to fix or revert — not the person whose change caused the break. This prevents broken builds from accumulating while everyone assumes someone else will fix it.

    PR Checks

    • Required reviews: At least 1 approval before merge
    • Required status checks: CI must pass before merge
    • Branch protection: No force-pushes to main
    • Auto-merge: If all checks pass and approved, merge automatically

    CI Optimization

    When the pipeline exceeds 10 minutes, apply these strategies in order of impact:

    Slow CI pipeline?
    ├── Cache dependencies
    │   └── Use actions/cache or setup-node cache option for node_modules
    ├── Run jobs in parallel
    │   └── Split lint, typecheck, test, build into separate parallel jobs
    ├── Only run what changed
    │   └── Use path filters to skip unrelated jobs (e.g., skip e2e for docs-only PRs)
    ├── Use matrix builds
    │   └── Shard test suites across multiple runners
    ├── Optimize the test suite
    │   └── Remove slow tests from the critical path, run them on a schedule instead
    └── Use larger runners
        └── GitHub-hosted larger runners or self-hosted for CPU-heavy builds
    

    Example: caching and parallelism

    jobs:
      lint:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with: { node-version: '22', cache: 'npm' }
          - run: npm ci
          - run: npm run lint
    
      typecheck:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with: { node-version: '22', cache: 'npm' }
          - run: npm ci
          - run: npx tsc --noEmit
    
      test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with: { node-version: '22', cache: 'npm' }
          - run: npm ci
          - run: npm test -- --coverage
    

    Common Rationalizations

    Rationalization Reality
    "CI is too slow" Optimize the pipeline (see CI Optimization below), don't skip it. A 5-minute pipeline prevents hours of debugging.
    "This change is trivial, skip CI" Trivial changes break builds. CI is fast for trivial changes anyway.
    "The test is flaky, just re-run" Flaky tests mask real bugs and waste everyone's time. Fix the flakiness.
    "We'll add CI later" Projects without CI accumulate broken states. Set it up on day one.
    "Manual testing is enough" Manual testing doesn't scale and isn't repeatable. Automate what you can.

    Red Flags

    • No CI pipeline in the project
    • CI failures ignored or silenced
    • Tests disabled in CI to make the pipeline pass
    • Production deploys without staging verification
    • No rollback mechanism
    • Secrets stored in code or CI config files (not secrets manager)
    • Long CI times with no optimization effort

    Verification

    After setting up or modifying CI:

    • All quality gates are present (lint, types, tests, build, audit)
    • Pipeline runs on every PR and push to main
    • Failures block merge (branch protection configured)
    • CI results feed back into the development loop
    • Secrets are stored in the secrets manager, not in code
    • Deployment has a rollback mechanism
    • Pipeline runs in under 10 minutes for the test suite

    Reproducido de addyosmani/agent-skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Asume un proyecto con GitHub Actions (o equivalente) y acceso para configurar secretos y protección de ramas.

    Detalles

    Creador
    addyosmani
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de addyosmani/agent-skills

    Este repo incluye 24 skills. Si instalas uno, normalmente ya tienes los demás.

    Endurece el código contra vulnerabilidades. Úsalo al manejar entrada de usuario, autenticación, almacenamiento de datos, integraciones externas o datos personales (GDPR, CCPA).

    Costo de contexto al activarse
    6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    anteayer
    seguridad

    Crea especificaciones antes de programar: úsalo al iniciar un proyecto o cambio sin spec, cuando los requisitos son ambiguos, o cuando un requerimiento debe descomponerse en un mapa de módulos.

    Costo de contexto al activarse
    3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    anteayer
    herramientas desarrollo

    Realiza revisión de código en múltiples ejes. Úsalo antes de fusionar cualquier cambio, sea escrito por ti, otro agente o una persona, para evaluar la calidad antes de entrar a la rama principal.

    Costo de contexto al activarse
    5.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 9 días
    testing qa

    Divide el trabajo en tareas ordenadas. Úsalo cuando tengas un spec o requisitos claros y necesites descomponer el trabajo en tareas implementables, estimar alcance o paralelizar.

    Costo de contexto al activarse
    2.4k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 4 días
    productividad

    Instrumenta el código para que el comportamiento en producción sea visible y diagnosticable, con logging, métricas, tracing y alertas.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 9 días
    devops infraestructura

    Descubre e invoca las skills de agente adecuadas; es la meta-skill que gobierna cómo se descubren y aplican todas las demás skills según la fase de desarrollo.

    Costo de contexto al activarse
    2.6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 9 días
    productividad

    Skills relacionados

    Gestiona la deprecación y migración de sistemas. Úsalo al remover APIs o features viejas, migrar usuarios a otra implementación, o decidir si mantener o sunsetear código existente.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    devops infraestructura

    Instrumenta el código para que el comportamiento en producción sea visible y diagnosticable, con logging, métricas, tracing y alertas.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 9 días
    devops infraestructura

    Prepara lanzamientos a producción: checklist previa, monitoreo, rollout escalonado y estrategia de rollback.

    Costo de contexto al activarse
    2.5k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 9 días
    devops infraestructura