Noções básicas da integração contínua

A integração contínua (CI) é uma prática de desenvolvimento de software em que os desenvolvedores com frequência mesclam as alterações de código em um repositório central. Depois disso, as versões e os testes automatizados são executados.

É possível configurar um sistema de CI básico para evitar novas mudanças que corrompiam o build após a mesclagem. É possível programar um sistema de CI mais avançado para testar automaticamente o app e garantir que ele se comporte conforme o esperado em diferentes ambientes, como níveis de API, tamanhos de tela e plataformas.

Um diagrama que mostra como vários desenvolvedores solicitam mudanças de código e como elas são verificadas pelo sistema de CI antes de serem mesclados no repositório de código principal.
Figura 1. Um sistema de CI mantém um repositório de código íntegro executando verificações antes da mesclagem.

Este documento demonstra estratégias comuns que os desenvolvedores usam para configurar sistemas de CI eficazes para projetos Android. Essas diretrizes são genéricas e se aplicam à maioria das soluções.

Exemplo típico

Um sistema de CI típico segue um fluxo de trabalho ou pipeline, que pode ter esta aparência:

  1. O sistema de CI detecta uma mudança no código, geralmente quando um desenvolvedor cria uma solicitação de envio, também chamada de "lista de alterações" ou "solicitação de combinação".
  2. Ele provisiona e inicializa um servidor para executar o fluxo de trabalho.
  3. Ela busca o código, bem como ferramentas, como o SDK do Android ou imagens do emulador, se necessário.
  4. Ele cria o projeto executando um determinado comando, por exemplo, ./gradlew build.
  5. Ele executa os testes locais com um determinado comando, por exemplo, executando ./gradlew test.
  6. Ela inicia os emuladores e executa os testes instrumentados.
  7. Ele faz upload de artefatos como resultados de testes e APKs.
Um diagrama mostrando um fluxo de trabalho básico de CI
Figura 2. Um fluxo de trabalho de CI básico

Benefícios da CI

As vantagens da CI incluem:

  • Melhoria na qualidade do software: a CI pode ajudar a melhorar a qualidade do software, identificando e corrigindo problemas logo no início. Isso pode ajudar a reduzir o número de bugs nas versões de software e melhorar a experiência geral do usuário.
  • Risco reduzido de builds corrompidos: ao automatizar o processo de build com CI, é possível evitar builds corrompidos resolvendo problemas mais cedo no processo.
  • Maior confiança nas versões: a CI pode ajudar a garantir que cada versão seja estável e pronta para produção. Ao executar testes automatizados, a CI pode identificar possíveis problemas antes de liberá-los para o público.
  • Melhoria na comunicação e colaboração: ao fornecer um lugar central para os desenvolvedores compartilharem códigos e resultados de testes, a CI pode ajudar a facilitar a colaboração entre desenvolvedores e outros membros da equipe e o monitoramento do progresso.
  • Aumento na produtividade: a CI pode ajudar a aumentar a produtividade do desenvolvedor ao automatizar tarefas que, de outra forma, seriam demoradas e propensas a erros.

Leia mais

Para mais informações sobre como você pode usar a integração constante para melhorar o desenvolvimento do seu app, leia as seguintes páginas: