Université Lille1

Résumé du stage de Florent Guette

CYO

Entreprise CYO ( www.cyo.com )
Période de stage du 31 avril 2010 au 29 juin 2010
Tuteur entreprise Sébastien Raeckelboom
Tuteur Universitaire Nour-Eddine Oussous

Sujet du stage

Intégration continue

Résumé du stage

L'entreprise :

CYO netgroup est une entreprise née en 1997 à Roubaix, et maintenant située dans le pôle d'excellence EuraTechnologies.
Comptant une vingtaine de personnes, l'entreprise a différents axes de travail : la présentation et l'accompagnement durant la mise en place de portails et d'outils collaboratifs, l'accompagnement de ses clients dans le cadre de leurs projets d'intégration d'outils et de plateformes de CMS (Content Management System), la création ou la refonte de sites web, leurs hébergements ainsi que le netmarketing et l'apport de solution e-business.

Mission du stage :

Mon sujet de stage est de mettre en place une chaine d'intégration continue pour des projets de développement en technologie Java / J2EE.

Qu'est ce que l'intégration continue :

C'est une chaine d'exécution automatique qui permet de suivre l'évolution d'un projet de façon continuelle (vérifier qu'il n'y est pas de régression de code par exemple). Cette chaine contient un serveur d'intégration continue.
C'est un serveur qui, à différentes périodes (réglable par l'entreprise) effectue un ou plusieurs « build » (c'est-à-dire la construction du projet, mais cela peut inclure le packaging ou le déploiement du sites web), lance des tests unitaires, vérifie certaines règles et mesures prédéfinies (respect des règles de codage, taux de couverture du code par les tests unitaires, statistiques diverses, duplication de code, présence de la javadoc, et de nombreuses autres règles) et renvoi un rapport des mesures, et/ou un avertissement si le « build » à échoué (en envoyant un mail par exemple).
Ma première tache en arrivant dans l'entreprise a été de me renseigner sur les différents outils nécessaire à la mise en place d'un tel serveur. L'un des outils qui ma pris le plus de temps à étudier est Maven 2, car c'est la base de la chaine d'intégration continue que j'ai mis en place.
C'est un outil de gestion de projet très pratique, mais un peu dur à aborder. Pour Maven 2, tout est plugin, et tous ces plugins sont configurés dans un fichier de configuration « pom.xml » (project object model). Excepté le serveur d'intégration continue (Hudson), tous les autres outils de l'intégration continue sont des plugins Maven 2.
Analyzer ce fichier de configuration, et comprendre comment l'utiliser, en testant localement sur ma machine, a été ma seconde tache.
Ma missions incluait d'installer Subversion en remplacement d'un autre outil de gestion de version (CVS) afin que le serveur d'intégration continue puisse récupérer les sources à analyser.
J'ai ensuite installé cette chaine en local, afin de vérifier que tout fonctionnait bien. Finalement, j'ai mis en place cette chaine d'intégration continue sur le serveur avec les connaissances accumulées au long de mes recherches et tests précédents.
Cette dernière étape a engendrée de nombreux bugs je j'ai du résoudre en cherchant dans tous les recoins du web avec patience.

Apport de ce stage :

Cette première expérience de l'entreprise à été une très bonne expérience pour moi et m'a conforté dans le choix de mes études et de la poursuite de celles-ci.
Bien que je n'aie pas beaucoup développé, ce stage m'a appris à m'être en place et à utiliser des outils qui me seront utile dans le futur, ainsi que l'importance de la communication dans le monde du travail.
Cela m'a aussi appris que la patience est une qualité qui est indispensable pour devenir un bon développeur.

La chaine de l'intégration continue