Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'intégration continue (CI) est une pratique de développement logiciel dans laquelle les développeurs fusionnent fréquemment les modifications de code dans un dépôt central, après quoi des builds et des tests automatisés sont exécutés.
Vous pouvez configurer un système CI de base pour éviter que de nouvelles modifications ne perturbent le build après la fusion. Vous pouvez programmer un système CI plus avancé pour tester automatiquement l'application et vous assurer qu'elle se comporte comme prévu dans différents environnements, tels que les niveaux d'API, les tailles d'écran et les plates-formes.
Figure 1. Un système CI maintient un dépôt de code opérationnel en effectuant des vérifications avant la fusion.
Ce document présente les stratégies courantes que les développeurs utilisent pour configurer des systèmes CI efficaces pour les projets Android. Ces consignes sont génériques et s'appliquent à la majorité des solutions.
Exemple type
Un système CI classique suit un workflow ou un pipeline, qui peut se présenter comme suit:
Le système CI détecte une modification dans le code, généralement lorsqu'un développeur crée une demande d'extraction, également appelée "liste de modifications" ou "demande de fusion".
Elle provisionne et initialise un serveur pour exécuter le workflow.
Elle récupère le code ainsi que des outils tels que le SDK Android ou les images de l'émulateur, si nécessaire.
Il compile le projet en exécutant une commande donnée, par exemple ./gradlew
build.
Elle exécute les tests locaux en exécutant une commande donnée, par exemple avec ./gradlew test.
Il importe des artefacts tels que des résultats de test et des APK.
Figure 2. Workflow CI de base
Avantages de l'intégration continue
L'intégration continue présente les avantages suivants:
Meilleure qualité des logiciels: la CI peut contribuer à améliorer la qualité des logiciels en identifiant et en corrigeant les problèmes le plus tôt possible. Cela peut aider à réduire le nombre de bugs dans les versions logicielles et à améliorer l'expérience utilisateur globale.
Réduction du risque de défaillances des compilations: lorsque vous automatisez votre processus de compilation avec CI, vous pouvez mieux éviter les défaillances de compilation en résolvant les problèmes plus tôt dans le processus.
Renforcement de la confiance dans les versions: la CI peut vous aider à garantir que chaque version est stable et prête pour la production. En exécutant des tests automatisés, CI peut identifier les problèmes potentiels avant de les rendre publics.
Amélioration de la communication et de la collaboration: en fournissant aux développeurs un emplacement centralisé pour partager le code et les résultats des tests, la CI peut aider les développeurs et les autres membres de l'équipe à collaborer et à suivre les progrès.
Productivité accrue: la CI peut contribuer à accroître la productivité des développeurs en automatisant les tâches qui, autrement, seraient chronophages et sources d'erreurs.
Complément d'informations
Pour savoir comment utiliser l'intégration constante afin d'améliorer le développement de votre application, consultez les pages suivantes:
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[null,null,["Dernière mise à jour le 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)**"]]