Usando o Dependabot para manter seu ambiente atualizado

Captura de tela do Dependabot

As atualizações diárias podem ser esmagadoras e acho que as atualizações semanais têm um melhor custo / benefício. Ademais, atribuo a mim as solicitações de recebimento para que eu possa receber notificações assim que elas forem abertas.

Como usar o Dependabot efetivamente

O Dependabot inclui em cada nota de versão de PR, registros de alterações, confirma links e detalhes de vulnerabilidade sempre que disponíveis. Isso é útil porque você pode dar uma olhada nas informações e decidir continuar ou não.

No entanto, como programadores pragmáticos, queremos garantir que as coisas não quebrem. Os detalhes de RP são importantes, mas mais do que isso, queremos uma simulação de todas (ou quase todas) as entregas que o projeto possui.

Integração de IC

Essa captura de tela mostra o que acontece toda vez que um PR é aberto na base de código da biblioteca de componentes do meu trabalho.

  • Testes (Jest / Bundle): a tarefa Jest testará os componentes React, enquanto a tarefa Bundle simulará os comandos de compactação que executamos quando queremos atualizar o pacote no registro do NPM;
  • Linters (folhas de estilo / JavaScript): os arquivos da folha de estilo seguem uma configuração sass-lint customizada e o código JS segue uma série de regras ESLint. Se um PR introduzir uma nova versão de um linter com novas regras, poderemos capturar isso;
  • Cypress (Teste de captura de tela / Teste de acessibilidade): se um novo pacote apresentar alterações que possam refletir a aparência dos componentes, o Cypress capturará a diferença, fará a captura de tela e armazenará no S3. Como o Cypress precisa de uma versão ao vivo do site de documentação, também temos o processo de criação do Gatsby coberto.

Com todas essas etapas, é muito improvável que um pacote externo quebre nosso ramo principal. Parabéns ao meu colega Grant Lee, que também trabalha neste projeto.

Também publicado em meu blog. Se você gosta deste conteúdo, siga-me no Twitter e GitHub. Foto da capa por Zhang Kenny em Unsplash