Ferramenta CLI genérica que automatiza atualizações de versão, tags no Git, changelogs, releases no GitHub/GitLab e publicação no npm.
semantic-release/semantic-release
Automatiza o versionamento semântico, a geração de changelogs e a publicação de pacotes na CI com base nas mensagens de commit.
- Estrelas
- 24,162
- Forks
- 1,807
- Issues abertas
- 407
- Último commit
- ontem
O que é?
semantic-release automatiza o fluxo de publicação de pacotes: determina o próximo número de versão, gera notas de lançamento, cria uma tag Git e publica o pacote. O aumento de versão é definido pelas mensagens de commit, que seguem uma convenção formal: uma correção gera uma versão patch, uma funcionalidade gera uma versão minor e uma alteração incompatível gera uma versão major.
A ferramenta foi projetada para rodar em um ambiente de integração contínua depois que os testes passam em uma branch de lançamento, como main ou next. Cada etapa, da verificação das condições à publicação e ao envio de notificações, é gerenciada por plugins, permitindo adaptar o mesmo fluxo a diferentes gerenciadores de pacotes e linguagens. Canais de distribuição, como as dist-tags do npm, permitem que os mantenedores publiquem pré-lançamentos e versões de manutenção a partir de branches separadas.
A convenção de commit padrão é a do Angular, e os plugins de análise de commits e geração de notas de lançamento aceitam opções para alterá-la. O suporte à procedência de pacotes npm adiciona atestações assinadas durante publicações feitas pelo GitHub Actions.
Recursos principais
- 01Calcula o próximo número de versão do Semantic Versioning com base nas mensagens de commit
- 02Gera notas de lançamento e changelogs automaticamente
- 03Cria tags Git e publica pacotes no npm e em outros canais
- 04Oferece suporte a canais de distribuição, como as dist-tags do npm, para pré-lançamentos e branches de manutenção
- 05Pode ser estendido com plugins para diferentes gerenciadores de pacotes e linguagens
- 06Oferece suporte à procedência de pacotes npm em publicações feitas pelo GitHub Actions
Casos de uso
- Publicar uma biblioteca npm a cada merge na branch main sem precisar atualizar as versões manualmente
- Manter builds de pré-lançamento em uma branch beta ou next com dist-tags separadas
- Manter os changelogs consistentes ao adotar uma convenção de mensagens de commit em toda a equipe
Início rápido
- 1
Hospede seu código em um repositório Git e configure um serviço de CI com Node.js e Git CLI que atendam aos requisitos de versão
- 2
Siga o guia oficial de introdução para instalar e configurar o semantic-release
- 3
Execute o comando semantic-release no CI após uma compilação bem-sucedida na branch de lançamento
semantic-release
Antes de usar
- Os lançamentos dependem de mensagens de commit que sigam uma convenção formalizada, como a do Angular.
- Ele precisa ser executado em um ambiente de CI com credenciais configuradas com segurança, portanto não é uma ferramenta independente para uso manual.
- A configuração exige um repositório Git e uma versão do Node.js que atenda aos requisitos do projeto.
Em coleções
Tópicos
Perguntas frequentes
- O que é semantic-release?
- Automatiza o versionamento semântico, a geração de changelogs e a publicação de pacotes na CI com base nas mensagens de commit. semantic-release automatiza o fluxo de publicação de pacotes: determina o próximo número de versão, gera notas de lançamento, cria uma tag Git e publica o pacote. O aumento de versão é definido pelas mensagens de commit, que seguem uma convenção formal: uma correção gera uma versão patch, uma funcionalidade gera uma versão minor e uma alteração incompatível gera uma versão major.
- semantic-release é gratuito? Qual é a licença?
- semantic-release é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- semantic-release ainda é mantido?
- Manutenção ativa. O último commit de semantic-release foi em 6 de nov. de 2026.
- Para que posso usar semantic-release?
- Publicar uma biblioteca npm a cada merge na branch main sem precisar atualizar as versões manualmente Manter builds de pré-lançamento em uma branch beta ou next com dist-tags separadas Manter os changelogs consistentes ao adotar uma convenção de mensagens de commit em toda a equipe
- Como instalar semantic-release?
- Hospede seu código em um repositório Git e configure um serviço de CI com Node.js e Git CLI que atendam aos requisitos de versão Siga o guia oficial de introdução para instalar e configurar o semantic-release Execute o comando semantic-release no CI após uma compilação bem-sucedida na branch de lançamento: semantic-release
- Onde consigo semantic-release?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/semantic-release/semantic-release
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Automatiza changelogs, releases no GitHub e atualizações de versão, interpretando Conventional Commits para criar um PR de release.
Sistema de build para gerenciar e publicar vários pacotes JavaScript/TypeScript a partir de um único repositório (monorepo).
Ferramenta de automação de releases para projetos Go que compila, empacota e publica binários no GitHub, em gerenciadores de pacotes e em registros de contêineres.
Uma GitHub Action que mantém atualizada uma pull request de release com atualizações de versão e changelog e, após o merge, cria a tag e publica um GitHub Release.
Uma CLI que automatiza o npm publish com verificações prévias, atualização de versão, tags do git, testes e pushes, reunindo o processo de release em uma execução interativa.