Master 2014 2015
Stages de la spécialité SAR
Développement d’une ferme d’intégration continue


Site :Paquito : une ferme d’intégration continue
Lieu :LIP6 (Jussieu) et/ou LSV (Cachan)
Encadrant : Francis Hulin-Hubard, Alban Linard, Pierre-Arnaud Sentucq
Dates :01/03/2015 au 31/08/2015
Rémunération :500,51 € par mois
Mots-clés : Master SAR, autre qu’ATIAM

Description

Paquito est un projet de ferme d’intégration continue, en cours de développement au sein des laboratoires [LIP6](http://www.lip6.fr/recherche/team.p...) et [LSV](http://www.lsv.ens-cachan.fr/?l=fr). Le but de ce projet est de disposer d’un service en ligne combinant deux techniques de qualité du logiciel utilisées actuellement de manière séparées : la ferme de build et l’intégration continue.

Ce service doit être disponible en ligne (à la [Travis-CI](https://travis-ci.org/) ou [drone.io](https://drone.io/)), et se connecter aux sources de nos logiciels (dans des dépôts [GitHub](https://github.com/), [git](http://git-scm.com/), [subversion](https://subversion.apache.org/), ...), pour fournir les services suivants :

* mise en place des hooks permettant de détecter les changements dans les sources ; * compilation des sources, quel que soit le langage de programmation ou le système de build utilisés ; * création de paquets pour différents systèmes ([Debian](https://www.debian.org/index.fr.html), [Red Hat](https://www.redhat.com/en/global/france), [Mac OS X](https://www.apple.com/fr/osx/)), différentes variantes (Debian stable/testing/unstable par exemple), et différentes architectures (i386, amd64, ...) ; * exécution des tests, après installation des paquets générés sur un système de base ; * déploiement des paquets générés vers des dépôts dédiés.

Toutes ces tâches doivent être décrites par l’utilisateur sous une forme lisible et concise. Le maximum d’informations doit être obtenu automatiquement, à partir du gestionnaire de versions (git, svn) ou du site stockant les sources ([GitHub](https://github.com/), [BitBucket](https://bitbucket.org/), ...).

Nous disposons déjà d’un [prototype](http://mbittan.github.io/cosyverifb...), à partir duquel vous développerez la plateforme Paquito. Celle-ci sera utilisé tout au long du stage sur deux projets (de bonne taille) développés dans les laboratoires : [Orchids](http://www.lsv.ens-cachan.fr/Softwa...) et [CosyVerif](http://cosyverif.org/).

Travail à réaliser ==================

Nous proposons un stage de niveau M2 et deux PSAR de niveau M1. Tous les stagiaires auront à travailler sur leurs parties respectives, en s’assurant de leur intégration avec les développement des autres.

Les tâches à réaliser sont les suivantes. Elles dépassent volontairement ce qui est réalisable au cours d’un stage. Selon le profil du candidat, son expérience, et ses centres d’intérêt, nous définirons lesquelles rentrent dans son sujet.

* la définition des informations nécessaires à l’intégration continue (commandes à lancer, spécification des dépendances, contenu des paquets à générer, ...) ; * l’implémentation d’un outil permettant de vérifier la cohérence de ces informations ; * l’extraction automatique de ces informations à partir des dépôts de sources ; * la création d’une interface utilisateur, sous forme de site web, permettant de gérer ses projets dans Paquito ; * le lancement des différentes étapes (compilation, test, ...) dans des conteneurs isolés ; * la publication des paquets générés sur des dépôts.

Les candidats doivent aimer découvrir des technologies variées :

* interfaçage avec les APIs de [GitHub](https://github.com/) ; * interfaçage avec différents systèmes de paquetage ; * interfaçage avec une build farm [Jenkins](http://jenkins-ci.org/) ; * utilisation d’une base de données NoSQL, comme [Redis](http://redis.io/) ou [MongoDB](http://www.mongodb.org/) ; * utilisation de docker ; * création d’une API [RESTful](http://fr.wikipedia.org/wiki/Repres...) en PHP ; * création d’un client web en HTML/CSS/JavaScript.