Intégration continue
Principes de l'intégration continue
Développement agile, DevOps et intégration continue
Pré-requis à l'intégration continue
Typologies des tests et métriques d'un logiciel
Cycle de vie d'un projet ; le modèle Maven
Outils annexes et intégration : Repository artefacts, Tests et qualité de code
Gestion des sources avec les SCMs
Rôle d’un SCM
Typologie des SCM : centralisé ou distribué. Impacts
Les principales opérations d’un SCM, spécificité des SCMs distribués
La notion de branches et de développement - La fusion de branches
Workflows de collaborations
Mise en place de SVN, mise en place de Git. Outils
Travaux Pratiques :
Mise en place de 2 dépôts : SVN et Git. Opérations de commit, update. Opérations Pull et Push de Git
Maven
Le POM, les coordonnées Maven, les différents dépôts, cycle de vie
Notion d'archetype, types d'artefact, options pour le démarrage de projet
Gestion des dépendances, Visualisation arbre de dépendances, Gestion des versions
Plugins Maven, configuration documentation
Ajout de plugin, augmenter le cycle de vie standard,
Structure des projets multi-modules
Travaux Pratiques :
POM d’un projet multi-modules, personnalisation du build pour intégrer des tests d’intégration et des tests de performance
Gestion des releases avec Maven et Nexus
Problématique de la production d'une release
La phase deploy de Maven
Le plugin Release
Intégration Nexus Maven
Fonctionnalités de Nexus
Travaux Pratiques :
Personnalisation du déploiement pour utiliser un dépôt Nexus, gestion des versions avec le plugin Release
Analyse du code source avec SonarQube
Modèle qualité d’un logiciel et métriques associés
L’offre de Sonar (SonarQube et SonarLint)
Architecture Sonar
Concepts Sonar : SonarScanner, Règles, Violations, Profils qualité
Cycle de vie des violations
Métriques qualité, formules de calcul
Leak periodes et porte qualité
Mise en place d’une démarche qualité et personnalisation des règles
Intégration Maven
Travaux Pratiques :
Installation de SonarQube, personnalisation dans le cadre d’un projet, démarrage de l’analyse via Maven
Mise en place du serveur Jenkins
L'offre Jenkins/Hudson. Notion de job, de workspace, de graphique de tendance
L'interface Web
Mise en place du serveur, les différents types d'installation
Contenu du répertoire .jenkins
Configuration des outils (Java, Maven, SCM, Serveur de mail)
Les plugins Jenkins, configuration, documentation
Mise en service, dimensionnement
Travaux Pratiques :
Installation d'un serveur Jenkins et de plugins, démarrage du build Maven précédemment mis au point
Pipeline d'intégration continue
Définition d’une pipeline
Pilpeline legacy et plugins associés
Le plugin BlueOcean et l’approche DevOps
Définition de pipeline avec Groovy
Travaux Pratiques :
Mise en place d’une pipeline avec les plugins legacy, avec BlueOcean