Volver al blog

Semantic Release: automatización de versiones semánticas

·1 min de lectura

¿Qué es Semantic Release?

Semantic Release automatiza todo el proceso de publicación: analiza los commits, determina la próxima versión semántica, genera el changelog, crea el tag de Git y publica el paquete. Todo basado en Conventional Commits.

Instalación

npm install --save-dev semantic-release

Configuración básica

{
  "branches": ["main"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    "@semantic-release/github"
  ]
}

Cómo determina la versión

  • Commits fix → versión patch (1.0.0 → 1.0.1)
  • Commits feat → versión minor (1.0.0 → 1.1.0)
  • Commits con BREAKING CHANGE → versión major (1.0.0 → 2.0.0)

Flujo en CI

# GitHub Actions
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npx semantic-release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Plugins populares

  • @semantic-release/git: commitea archivos generados (package.json actualizado).
  • @semantic-release/docker: publica imágenes Docker.
  • @semantic-release/slack: notifica en Slack.

Beneficios

  • Elimina decisiones humanas sobre versionado.
  • Changelogs precisos y automáticos.
  • Publicación consistente y sin errores manuales.

¿Quieres automatizar tus releases? En Vynta configuramos Semantic Release para tu proyecto.

Artículos relacionados

¿Tienes un proyecto en mente?

Hablemos