A liberação semântica automatiza todo o fluxo de trabalho de liberação do pacote, incluindo: determinando o próximo número da versão, gerando as notas de versão e publicando o pacote.
Isso remove a conexão imediata entre emoções humanas e números de versão, seguindo estritamente a especificação de versão semântica e comunicando o impacto das mudanças nos consumidores.
Confie em nós, isso mudará seu fluxo de trabalho para melhor. - Egghead.io
Liberação totalmente automatizada
Aplicar a especificação de versão semântica
Novos recursos e correções estão imediatamente disponíveis para os usuários
Notifique mantenedores e usuários de novos lançamentos
Use a Convenção de Mensagem de Commit Formalizada para documentar as alterações na base de código
Publique em diferentes canais de distribuição (como as distribuições de NPM) com base em mescladas Git
Integrar -se ao seu fluxo de trabalho de integração contínuo
Evite possíveis erros associados a versões manuais
Suporte a quaisquer gerentes e idiomas de pacotes via plugins
Configuração simples e reutilizável por meio de configurações compartilháveis
Suporte para a proveniência do pacote NPM que promove maior segurança da cadeia de suprimentos por meio de atestados assinados em ações do GitHub
A liberação semântica usa as mensagens de confirmação para determinar o impacto do consumidor das alterações na base de código. Seguindo convenções formalizadas para cometer mensagens, a liberação semântica determina automaticamente o próximo número da versão semântica, gera um changelog e publica o lançamento.
Por padrão, a liberação semântica usa convenções de mensagens de compromisso angular. O formato da mensagem de confirmação pode ser alterado com as opções preset
ou config
do @semântico de liberação/analisador e @semântico de liberação/liberação-notes-geradores.
Ferramentas como Commitizen ou Commitlelint podem ser usadas para ajudar os colaboradores e aplicar mensagens de compromisso válidas.
A tabela abaixo mostra qual mensagem de confirmação recebe qual tipo de liberação quando semantic-release
é executado (usando a configuração padrão):
Cometer mensagem | Tipo de liberação |
---|---|
fix(pencil): stop graphite breaking when too much pressure applied | Liberação de correção do patch |
feat(pencil): add 'graphiteWidth' option | Liberação menor de recursos |
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reasons. | Grande liberação de quebra (Observe que a BREAKING CHANGE: o token deve estar no rodapé da confirmação) |
A liberação semântica deve ser executada no ambiente do CI após cada construção bem-sucedida na filial de liberação. Dessa forma, nenhum ser humano está diretamente envolvido no processo de liberação e as liberações são garantidas como não -românticas e não sentimentais.
Para cada novo compromisso adicionado a um dos ramos de liberação (por exemplo: master
, main
, next
, beta
), com git push
ou mesclando uma solicitação de tração ou fusão de outra filial, uma compilação de CI é acionada e executa o semantic-release
comando para fazer uma versão se houver alterações de base de código desde a última versão que afeta as funcionalidades do pacote.
A liberação semântica oferece várias maneiras de controlar o tempo, o conteúdo e o público de lançamentos publicados. Veja Exemplo de fluxos de trabalho nas seguintes receitas:
Usando canais de distribuição
Liberações de manutenção
Pré-liberação
Depois de executar os testes, o comando semantic-release
executará as seguintes etapas:
Etapa | Descrição |
---|---|
Verifique as condições | Verifique todas as condições para prosseguir com a liberação. |
Obtenha o último lançamento | Obtenha a confirmação correspondente à última versão analisando tags Git. |
Analisar compromissos | Determine o tipo de liberação com base nos commits adicionados desde a última versão. |
Verifique a liberação | Verifique a conformidade da liberação. |
Gerar notas | Gere notas de liberação para as comissões adicionadas desde a última versão. |
Crie tag git | Crie uma tag git correspondente à nova versão de liberação. |
Preparar | Prepare o lançamento. |
Publicar | Publique o lançamento. |
Notificar | Notificar novos lançamentos ou erros. |
Para usar liberação semântica, você precisa:
Para hospedar seu código em um repositório Git
Use um serviço de integração contínuo que permita configurar credenciais com segurança
Uma versão Git CLI que atenda ao nosso requisito de versão instalado em seu ambiente de integração contínua
Uma versão Node.js que atende ao nosso requisito de versão instalado em seu ambiente de integração contínua
Uso
Começando
Instalação
Configuração do CI
Configuração
Plugins
Configuração do fluxo de trabalho
Configurações compartilháveis
Estendendo -se
Plugins
Configuração compartilhável
Receitas
Configurações CI
Git hospedou serviços
Libere o fluxo de trabalho
Guia do desenvolvedor
API JavaScript
Desenvolvimento de plugins
Desenvolvimento de configuração compartilhável
Apoiar
Recursos
Perguntas frequentes
Solução de problemas
Requisito da versão do nó
Política de suporte de nós
Discussões do Github
Pilha estouro
Informe as pessoas que seu pacote é publicado usando liberação semântica e qual comprometimento de Convenção é seguida pela inclusão deste crachá em seu ReadMe.
[! [Release semântica: Angular] (https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)] (https://github.com/semictic-release /semântico liberação)
![]() | ![]() | ![]() |
---|---|---|
Gregor Martynus | Pierre Vanduynslager | Matt Travi |
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
Stephan Bönnemann | Rolf Erik Lekang | Johannes Jörg Schmidt | Finn Pauls | Christoph Witzko |