Connaître l’état de l’art des pratiques de l’Intégration continue
Comprendre et maîtriser les principes de l’intégration continue et savoir la mettre en œuvre au sein des projets
Manipuler un gestionnaire de contrôle de version
Comprendre les mécanismes de construction et savoir gérer les dépendances de construction de ses composants
Savoir mettre en œuvre les principaux outils de métriques d’analyse de code
Exploiter les fonctionnalités de Jenkins et des autres outils constituant l’usine logicielle
Savoir automatiser les tâches liées au développement et au déploiement sur les plateformes d’intégration
Public
Développeurs, architectes, chefs de projet techniques, intégrateurs, responsables qualité
Prérequis
Connaissances de base en développement logiciel
Méthodes pédagogiques
40 % théorie / 60% pratique
Description
L’intégration continue est un ensemble de pratiques issues du génie logiciel qui participent, au même titre que les méthodes agiles, à l’industrialisation des développements. Elle permet de s’assurer à chaque évolution du code source que l’ensemble des modifications n’introduit pas de régression.
Le but est de détecter au plus tôt les éventuels problèmes d’intégration lors du développement et d’en limiter ainsi les coûts de correction. Elle s’inscrit au travers d’un ensemble d’outils constituant l’usine logicielle qui permet dans une démarche d’automatisation des constructions, des déploiements et des suites de tests, de générer des audits de fabrications, des rapports de tests accessibles à tous les membres de l’équipe et d’améliorer ainsi la productivité globale du projet.
Programme
Introduction
Les principes et apports de l’intégration continue
Les prérequis
Les différents outils de l’intégration continue
Les points de démarrage de la mise en place de processus d’intégration continue
Changement, déclenchement et processus d’intégration
Détail des différentes étapes d’un processus d’intégration
Les types de déclenchement du processus
Notion d’ordonnanceur
Le gestionnaire de contrôle de version
Les pourquoi ?
Rappel des bonnes pratiques de branch & merge
Les différents gestionnaires de sources
Les problématiques d’intégration des changements
Workshop: Github – Source Code, Branches, PR
Automatisation de la construction logicielle
Les enjeux
Comparaison de l’utilisation des IDE et de l’intérêt d’un moteur d’intégration couplé à un script de construction
Comment démarrer son automatisation ?
Sensibilisation au temps de construction globale d’une application
Validation et traçabilité de la chaîne de construction
Workshop : Github – Actions Build
exemple dotnet build (local vs agent)
L’automatisation des tests
Rappel des pratiques TDD et BDD
Penser et tester en termes d’APIs
Automatisation des tests unitaires et d’intégration
Configuration des rapports
Mesurer la couverture de test
Les environnements de tests
Workshop : Github – Unit Tests + Code Coverage
Livraison continue
Paradigme « Construire 1 fois, Livrer n fois »
Mise à disposition des livrables à l’aide d’un dépôt de binaires (stockage et gestion des librairies)
Fourniture de scripts d’installation automatique de l’application
Savoir aller plus loin : signature des livrables
Workshop : Github – Artifacts / Release
Github Actions (pourrait être remplacé par Azure DevOps, Jenkins ou tout autre outil selon les besoins clients)
Historique & positionnement
Panorama des fonctionnalités
Les plugins/actions les plus utilisés
Les pièges à éviter
Les modèles de jobs de construction
Mise en œuvre avec des projets multi-technos
Workshop : Github Actions, Construire un projet multi-technos
Bonus Workshop : Github Actions, Créer une action custom
La mise en place des métriques : qualité du code
La génération de rapports d’analyse
Les outils d’analyse et de reporting
La publication des résultats et illustration avec SonarCloud
Workshop : SonarCloud + Github Actions
L’usine Logicielle en entreprise
Bien choisir son usine logicielle
Usine Monolithique vs Usine dédiée
Agents : Agent Pools, Self-Hosted Agents vs Cloud Agents
Gestion de la sécurité
Problématiques de mise à jour
Exemples (TFS, Jenkins, TeamCity) vs (Azure DevOps, Github, Github Enterprise)
Évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de quizz, mises en situation, travaux pratiques…
En fin de formation, il est également demandé aux participants de mesurer leur satisfaction vis-à-vis de de la formation suivie.
Néosoft Training dispose d’un processus qualité qui prend en considération les éventuels dysfonctionnements rencontrés par les participants afin d’être proactif quant à la solution corrective adaptée tant sur le contenu de la formation elle-même que les conditions de son déroulement.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’utilisateur.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’utilisateurs afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.