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.