Lorsqu'un projet mature commence à se fournir en couverture de code au niveau unitaire et fonctionnel, nous mettons en place une CI pour automatiser l'exécution de ces tests.
La plupart du temps nous utilisons des solutions comme Travis, Circle CI, Jenkins ou d'autre.
Il vient un moment où l'accumulation de tous ces tests entrave le rythme de développement par la durée d'exécution. De plus, lorsque l'équipe grossit, le nombre de lancements de tests explose, ajoutant du délai d'attente.
Deux solutions sont envisagées dans la plupart des cas :
1. Soit ne plus attendre la CI pour merger/mettre en production et prendre le risque qu'un bug passe en production.
2. Soit payer plus cher, pour avoir plus de tests en parallèle, pour absorber la charge.
En réalité, il existe une troisième solution, faire une CI plus rapide et en plus la payer moins cher. Elle permet d'accélérer le feedback qui permet un developpement plus vertueux.
Je vous partagerai mon retour d'expérience d'une migration de CI qui a permis de passer la durée des tests de ** 1 heure à 6 minutes **et de **diviser les coûts par 5.**