Dans plusieurs projets modernes de développement logiciel, il est souvent question de CI/CD. Mais, qu'est-ce que c'est ? Les termes CI/CD signifient Continuous Integration / Continuous Delivery & Deployment. Ces termes sont traduits en français par l'intégration continue, distribution continue et déploiement continu. Il est alors question ici d'automatiser les processus de développement, la compilation, les tests, les mises-à-jour du code de référence jusqu'à la mise en production du logiciel. Des cycles rapides, itératifs et courts de développement sont ainsi souhaités.
Avec l'aide de Git et des outils de gestion de projet fournis par GitHub ou externes (Jira), il est possible de développer des logiciels selon la méthode Agile. La fusion des changements, souvent effectués par des "pull-request" à partir de branches dédiées à une fonctionnalité spécifique, permettra de mettre à jour le code source de référence en continue.
Les modifications apportées par les dévelopeurs sont automatiquement testées avant de faire un merge sur la branche principale (souvent appelée master ou main). La branche "main" contient alors la nouvelle version que tous les développeurs doivent utiliser comme référence principale.
Dans un contexte de production, il est nécessaire de déployer les lociciels ou bibliothèques sous forme d'installateur ou de "packages" utilisables (pypi, package NPM, zip). Il est possible d'automatiser cette étape à chaque fois que le "merge" se produit dans la branche principale.
La section Flux de travail présente comment ceci peut se mettre en oeuvre avec les outils proposés.