Use a integração contínua

CI (integração contínua) é o processo de criar e testar automaticamente o código sempre que um membro da equipe confirma alterações de código no controle de versão. Uma confirmação de código para a ramificação principal ou de tronco de um repositório compartilhado dispara o sistema de criação automatizado para criar, testar e validar a ramificação completa. A CI incentiva os desenvolvedores a compartilhar códigos e testes de unidade, mesclando as alterações no repositório compartilhado de controle de versão sempre que concluem uma tarefa.

Os desenvolvedores de software em geral trabalham isolados e precisam integrar as alterações com o resto da base de código de uma equipe. Esperar dias ou semanas para integrar o código pode gerar muitos conflitos de mesclagem, bugs difíceis de corrigir, estratégias de código divergentes e esforços duplicados. A CI evita esses problemas porque exige que o código da equipe de desenvolvimento seja continuamente mesclado à ramificação de controle de versão compartilhada.

A CI mantém a ramificação principal atualizada. Os desenvolvedores podem usar sistemas de controle de versão modernos, como o Git, para isolar o trabalho em ramificações de recursos de curta duração. Quando o recurso for concluído, o desenvolvedor enviará uma solicitação de pull da ramificação do recurso para a ramificação principal. Após a aprovação da solicitação de pull, as alterações são mescladas na ramificação principal e a ramificação do recurso pode ser excluída.

As equipes de desenvolvimento repetem esse processo para cada item de trabalho. As equipes podem estabelecer políticas de ramificação para garantir que a ramificação principal mantenha os critérios de qualidade desejados.

As definições de criação especificam que cada confirmação na ramificação principal dispara o processo automatizado de criação e testes. Os testes automatizados verificam se cada criação mantém uma qualidade consistente. A CI detecta bugs no início do ciclo de desenvolvimento, tornando a correção mais barata. 

A CI é um recurso padrão em plataformas de DevOps modernas. Os usuários do GitHub podem implementar a CI por meio do GitHub Actions. Os usuários do Azure DevOps podem usar o Azure Pipelines.