# Intégration Continue

L'intégration continue permet de **vérifier à chaque changement de code** que celui-ci **fonctionne correctement** sur une **environnement identique à celui de production** et sans perturber les autres fonctionnalités.

En eXtreme Programming, il est recommandé d'intégrer le plus fréquemment possible de petits changements afin d'en constater les conséquences le plus rapidement possible.

## Anecdote

Chez Wishtack, suite à un changement, nous avons constaté une fuite mémoire sur l'environnement d'intégration après quelques minutes.

Le diagnostic et la correction ont pris quelques secondes :

1. Récupération de l'identifiant du changement *(i.e. : commit git)* ayant introduit la fuite mémoire directement depuis l'outil de Monitoring.
2. Analyse du changement *(contenu du commit)*.
3. Il s'agissait d'un commit où seule une ligne avait changé pour intégrer une librairie externe victime de fuite mémoire.
4. Nous nous sommes débarrassé de la librairie pour trouver une solution alternative.

**Combien de temps et de claviers cassés cela aurait couté** si la fuite avait été découverte **à la livraison après plusieurs mois de développement** ?

Netflix raconte une fuite mémoire assez surprenante qui leur a couté une énergie considérable :

{% embed url="<https://medium.com/netflix-techblog/node-js-in-flames-ddd073803aa4>" %}

## Fonctionnement

1. A chaque modification, le développeur Check-In son code sur le Repository.<br>
2. A chaque Check-In, le produit est rebuild automatiquement et les résultats sont publiés.\
   Les résultats doivent être accessibles à toute l'équipe.<br>
3. En cas de succès, les tests automatisés sont exécutés et les résultats publiés.<br>
4. En cas de succès, les serveurs d'intégration sont mis à jour.<br>
5. Toutes les parties prenantes *(développeurs, clients etc...)* peuvent évaluer la dernière version.

![Continuous Integration](/files/-LHJD6jqDd9XPVpIn_ss)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide-agile.wishtack.io/extreme-programming/integration-continue-livraison-continue-et-deploiement-continu/integration-continue.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
