Stage DAFOP 2014 : intégration continue avec Jenkins
Introduction
Méthodes agiles
- Modèle en spirale : Livrer une application fonctionnalité par fonctionnalité.
- Travail en équipe : modèle de travail distribué. Le code est re-centralisé.
- Automatisation : utilisation d'un vieil outil ANT (possibilité d'utiliser Maven ou des scripts écrits en Gradle ou langage shell)
- Générer la documentation du projet de façon automatique
Configuration
| Serveur (service) | Logiciel | Adresse IP | Nom |
|---|---|---|---|
| Un serveur de révisions | Scm-Manager | http://192.168.108.111:8080/scm/hg | badafop2014scm |
| Un gestionnaire d'intégration continue | Jenkins | http://192.168.108.112:8080 | badafop2014jenkins |
| Un gestionnaire de projet | Redmine | http://192.168.108.113 | badafop2014redmine |
Démonstration
Scm-Manager
- Dépôt : demo1
- Sécurité : accès par compte anonyme
- Option General : cocher la case "Allow Anonymous Access"
Redmine
- compte : daniele, bruno
- projet : demo1
- Membres :
- daniele : administrateur
- bruno : développeur
Problèmes : pour la synchronisation du dépôt
Jenkins
Créer les mêmes comptes et projets que Redmine
Définir le type de gestionnaire de révisions et l'adresse du dépôt du projet
- dépôt mercurial
- ajouter action au build : ant
- cible : toutes-cibles
Ajouter une action après le build :
- Générer javadoc
- dossier build/javadoc
- construire = Lancer un build
- console : le dossier n'existe pas
- ajouter un mkdir dans build.xml et une property javadoc.api : build/javadoc
Exercice 1
Le but de l'exercice est de :
- organiser le travail grâce au logiciel de suivi de projet (créer le projet et faire des demandes).
- partager le code grâce à un dépôt sur un serveur de révisions (otut cela est expliqué dans d'autres documents : papier et électronique);
- organiser et créer les branches : default, stable, maintenance, prep-release
- gérer les ajouts de caractéristiques les unes après les autres :
- d'abord, type de bien dans la branche f-domaine-typedebien,
- puis Commune dans f-commune,
- puis ClasseEnergetique….,
- puis Bien……,
- intégrer tout cela dans un "job" Jenkins pour générer une documentation commune et lancer des tests d'intégration
Voici le diagramme des classes de l'exercice ex1 :
- Écrivez le code des classes TypeDeBien, ClasseEnergetique, ClasseEnregtiqueAbstraite, …. et Commune.
- Écrivez le code de test de ces classes et notamment les méthodes toStirng(), equals() et hashCode().
La méthode equals() est complexe, car il y a plusieurs conditions à respecter : on vous demande d'écrire d'abord le code de la classe de Test en séparant les conditions testées en 2 (ou 3) et d'écrire chacun(e) la moitié des méthodes de tests de cette méthode// equals()//. Il faudra, ensuite, fusionner votre code.
Le contrat général des méthodes equals() et hashCode() en Java est ici.
La documentation de ces classes est ici.