4. Définition
« L'intégration continue est une pratique en
génie logiciel, qui consiste à faire en sorte que
les développeurs intègrent fréquemment
leurs travaux à l'application »
8. Référentiel de sources
Automatisation
du build
Des tests et encore des tests
Contrôle de la
qualité du code
Packaging
Indicateurs,
métriques et tableau
de bord
Gestion de
configuration
Gestion des
dépendances
9.
10. Pourquoi ?
Nombreuses taches répétitives et pénibles
Perte de temps à traiter les problèmes de livraison, de configuration
Risque élevé d’erreurs humaines
Conflits récurrents entre Dev et Ops sur les problématiques de déploiement
Besoin d’augmenter la fréquence des livraisons #Agilité
« Les gros changements
créent de gros
problèmes, des petits
changements créent de
petits problèmes »
11. Par quoi commencer ?
Savoir définir et s’approprier collectivement des règles de développement
=> tests unitaires, codage, nommage,…
Toute activité qui n'apparaît qu'au moment d'une livraison intermédiaire et que l'équipe vit comme longue et pénible est
candidate pour être prise en compte au titre de l'intégration continue
Avoir une stratégie de test partagée (développeur, métier, exploitants)
Partager les objectifs de l’intégration continue
Compléter et améliorer en continu le processus d’intégration et de déploiement
Disposer des bonnes compétences pour avancer de manière efficace
Identifier les outils disponibles en fonction du contexte techno
13. Exemple
Définition d’objectifs de qualité :
Couverture de tests de 80%
D’ici à 3 mois, tous les développeurs ont écrit 20 tests unitaires
D’ici à 3 mois, tous les bugs rencontrés amèneront à l’écriture d’un test
Tests automatiques :
Tests unitaires demandés à chaque dev sur tous les nouveaux développement
Tests fonctionnels Bihat sur les fonctionnalités clés
Qualité du code :
Scrutinizer sur tous les projets GitHub PHP
Relecture systématique du code par 2 dévs avant chaque merge
Lancement automatique des tests et de l’analyse de qualité lors de chaque PR (Pull Request)
23. • Structuration de l'équipe (rôles scrum master et développeur)
• Ajout manuel d'un fichierCHANGELOG
• Automatisation des étapes de MEP (CHANGELOG, branches de hotfix ...)