Automatizando o release de pacotes npm com GitHub Actions

Henrique Silvério

JavaScript Developer @ Fliper App

twitter.com/RikeSilverio

github.com/HenriqueSilverio

Sumário

  • Código reutilizável
  • Versionamento semântico
  • Integração Contínua
  • Entrega Contínua
  • Processos automatizados

Código reutilizável

npm

  • Utilizar código de terceiros
  • Compartilhar código (interno e externo)
  • Gerenciar as diferentes versões desses códigos

Com o npm podemos:

"O maior registro de software do mundo."

Dependency hell

Sentimental Versioning

"Just improvise new numbers from your mood on that day."

sentimentalversioning.org

"Version One dot Oh, okay then."

Semantic Versioning

"Conjunto de regras simples, que ditam como os

números de versão são atribuídos e incrementados."

  • MAJOR: Alterações de API incompatíveis
  • MINOR: Alterações de API retrocompatíveis
  • PATCH: Correções de bugs retrocompatíveis

Conventional Commits

"Convenção simples para mensagens de commit [...]

[...] facilita a criação de ferramentas automatizadas."

  • MAJOR: `BREAKING CHANGE`
  • MINOR: `feat:`

  • PATCH: `fix:`

chore, ci, docs, style, refactor...

Semantic release

"Gerenciamento de versões e publicação de pacotes

de forma completamente automatizada."

  • Força seguir a especificação do Semantic Versioning
  • Integra com diferentes fluxos de CI
  • Evita potenciais erros com releases manuais

Integração Contínua

"Prática em que os trabalhos feitos por diferentes

desenvolvedores são integrados com frequência."

  • Build
  • Setup
  • Lint
  • Testes

Entrega Contínua

"Abordagem na qual os times de desenvolvimento lançam

 produtos de forma frequente, previsível e automatizada."

  • Lançamento frequente de atualizações
  • Resposta rápida aos feedbacks dos usuários
  • Evita grandes riscos nos lançamentos

GitHub Actions

"Makes it easy to automate all software workflows [...]

[...] Build, test, and deploy code right from GitHub."

Show me the code

git clone https://github.com/henriquesilverio/talk-npm-actions.git

Referências

Obrigado!

Made with Slides.com