Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
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:
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".
Ele provisiona e inicializa um servidor para executar o fluxo de trabalho.
Ela busca o código, bem como ferramentas, como o SDK do Android ou imagens do emulador,
se necessário.
Ele cria o projeto executando um determinado comando, por exemplo, ./gradlew
build.
Ele executa os testes locais com um determinado comando, por exemplo, executando
./gradlew test.
Ele faz upload de artefatos como resultados de testes e APKs.
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:
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Continuous Integration basics\n\nContinuous Integration (CI) is a software development practice where developers\nfrequently merge their code changes into a central repository, after which\nautomated builds and tests run.\n\nYou can set up a basic CI system to prevent new changes that would break the\nbuild after merging in. You can program a more advanced CI system to\nautomatically test the app and make sure it behaves as expected in different\nenvironments, such as API levels, screen sizes, and platforms.\n**Figure 1.** A CI system keeps a code repository healthy by running checks before merging.\n\nThis document demonstrates common strategies developers use to set up effective\nCI systems for Android projects. These guidelines are generic and apply to the\nmajority of solutions.\n\nTypical example\n---------------\n\nA typical CI system follows a *workflow* or *pipeline*, which might look as\nfollows:\n\n1. The CI system detects a change in the code, usually when a developer creates a pull request, also called \"change list\" or \"merge request\".\n2. It provisions and initializes a server to run the workflow.\n3. It fetches the code as well as tools such as the Android SDK or emulator images if needed.\n4. It builds the project by running a given command, for example .`/gradlew\n build`.\n5. It runs the [local tests](/training/testing/local-tests) by running a given command, for example running .`/gradlew test`.\n6. It starts emulators and runs the [instrumented tests](/training/testing/instrumented-tests).\n7. It uploads artifacts such as test results and APKs.\n\n**Figure 2.** A basic CI workflow\n\nBenefits of CI\n--------------\n\nThe advantages of CI include:\n\n- **Improved quality of software**: CI can help to improve the quality of software by identifying and fixing problems early on. This can help to reduce the number of bugs in software releases and improve the overall user experience.\n- **Reduced risk of broken builds**: When you automate your build process with CI you can better avoid broken builds by resolving issues earlier in the process.\n- **Increased confidence in releases**: CI can help to ensure that each release is stable and ready for production. By running automated tests, CI can identify any potential problems before you release them to the public.\n- **Improved communication and collaboration**: By providing a central place for developers to share code and test results, CI can help to make it easier for developers and other team members to work together and track progress.\n- **Increased productivity**: CI can help to increase developer productivity by automating tasks that would otherwise be time-consuming and error-prone.\n\nFurther reading\n---------------\n\nMore more information on how you can use constant integration to improve\ndevelopment for your app, read the following pages:\n\n- **[CI Automation](/training/testing/continuous-integration/automation)**\n\n- **[CI Features](/training/testing/continuous-integration/features)**"]]