:PROPERTIES:
:ID:       607219f8-675b-4244-a3ce-b399bf210366
:mtime:    20220429094502
:ctime:    20220429091956
:END:
#+title: CI/CD

* Introduction
 * Comble le fossé entre les activités et les équipes de développement et d'exploitation en imposant :
   * L'automatisation de la création, des tests (CI),
   * Du déploiement des applications (CD).
 * Les pratiques DevOps modernes impliquent le CI/CD et la surveillance continue des applications logicielles tout au long de leur cycle de vie.

* CI (Continuous Integration)
 * Première étape du pipeline,
 * Intégration des modifications apportées au code par différents développeurs dans un dépôt (ie: Git),
 * Exécution de tests unitaires et d'intégration,
 * Couplé au process de développement [[id:6da0b985-e6f4-4454-bb6a-e941b722365b][Test driven development]].

* CD (Continuous Delivery/Continuous Deployment)
** Continuous Delivery
 * Livraison manuelle du /build/ (dépose dans un app store par exemple),
 * Quand il est nécessaire de réaliser des tests manuels (/acceptance tests/) après le CI.
** Continuous Deployment
 * Livraison automatique du code sortant du CI (résultats de test satisfaisants).
 * Permet une plus grande réactivité: livraison dès que le code est prêt (plus de livraison formelle),
 * Ajoute une pression sur l'équipe de développement,
 * Nécessite que les tests effectués en CI soient suffisants.

* Références
 * [[https://fr.wikipedia.org/wiki/CI/CD][Wikipedia]]
 * [[https://blog.devgenius.io/a-simple-definition-of-the-ci-cd-pipeline-8a48169be938?source=rss----4e2c1156667e---4][Definition of the CI/CD pipeline - Medium]]
