Compiler un projet en Java sur GitHub avec VSO

Récemment chez un client nous avons dû faire un patch sur le plugin LDAP pour SonarQube. Bien que nous ne soyons pas des développeurs Java la mise à jour du code n’a pas été trop compliquée. Par contre s’est posée la problématique de la compilation Java avec Maven, nous ne sommes pas des spécialistes et nous ne voulions pas non plus passer trop de temps pour mettre en place les composants nécessaires.
La solution : utiliser Visual Studio Online !
Je vais vous expliquer comment nous avons mis en place une build Java/Maven dans VSO branché sur GitHub en 10 minutes sans installer quoi que ce soit !
Repository Git
Dans notre cas le code source se trouve dans un repository Git sur GitHub, il faut donc faire un fork de ce repository pour pouvoir le modifier. Rien de plus simple dans GitHub :
- on se connecte à son compte,
- on se connecte au repository,
- on clique sur Fork
Build VSO
La suite se passe dans VSO. Il va falloir créer un projet (ou utiliser un projet existant) et une définition de build. Je vais supposer que vous savez créer un projet et passer directement à la création et configuration de la définition de build.
Connexion VSO / GitHub
Avant toute chose nous allons créer dans VSO une nouvelle connexion pour pouvoir se connecter à GitHub. Pour cela :
- Allez dans l’interface d’administration,
- Cliquez sur l’onglet Services,
- Cliquez sur le bouton New Service Endpoint,
- Cliquez sur GitHub
Dans la fenêtre de connexion il faudra spécifier le type d’autorisation (je vous conseille d’utiliser un personal access token) et le nom de la connexion :
Définition de build
Il faut maintenant créer une nouvelle définition de build. Pour cela :
- Cliquez sur l’onglet BUILD
- Cliquez sur le bouton +
- Dans la fenêtre de choix de template, sélectionnez Empty
- Cliquez sur le bouton Next
Dans la fenêtre des settings :
- Sélectionnez GitHub pour le repository,
- Sélectionnez Hosted comme type d’agent (pour ne rien avoir à installer)
- Cliquez sur Create
La définition de build est créée et il va maintenant falloir la configurer en lui spécifiant le repository GitHub ou aller chercher les sources et en ajoutant les différentes tâches que l’on souhaite faire faire à notre build.
Commençons par spécifier le repository GitHub. Pour cela :
- Cliquez sur l’onglet Repository,
- Sélectionnez la connexion GitHub que vous avez créée précédemment,
- Sélectionnez le repository contenant le code source,
- Sélectionnez la branche à compiler
Nous allons maintenant ajouter les tâches de build et là c’est très simple il n’y en a que 2 à mettre.
- Cliquez sur l’onglet Build,
- Cliquez sur le bouton Add build step,
- Dans la fenêtre des tâches, cliquez sur le bouton Add devant Maven et Publish Build Artifacts (dans cet ordre !).
Nos tâches sont maintenant ajoutées au process de build, il ne nous reste plus qu’à les configurer.
La tâche Maven va s’occuper de compiler le fichier .jar. Pour cela, nous allons simplement choisir le fichier pom.xml à utiliser. Vous pouvez soit taper directement son chemin depuis la racine du repository soit utiliser la fenêtre de sélection :
La deuxième tâche va nous permettre de spécifier les fichiers qu’il faudra envoyer à VSO comme artefact de build. Pour cela il faut avoir une petite connaissance de la structure des répertoires une fois la compilation finie. Ensuite il suffit juste de renseigner les champs :
- Indiquez le répertoire racine dans lequel chercher les fichiers,
- Indiquez les filtres à utiliser pour sélectionner les fichiers sous le répertoire racine. Vous pouvez spécifier un filtre par ligne et utiliser les caractères spéciaux * et **,
- Indiquer le nom de votre artefact,
- Indiquer ou sera stocké l’artefact, dans notre cas on choisira Server pour qu’il soit stocké directement sur VSO.
Voilà ! Il ne reste plus qu’à sauver la définition en lui donnant un nom et la lancer !
Une fois la build finie, on peut voir le résultat sur l’écran de build (vous remarquez que l’on a même les résultats des tests unitaires) et accéder à notre artefact via l’onglet Artifacts :
Et voilà comment en 10 minutes vous pouvez compiler du Java hébergé sur GitHub (ou un autre repository supporté par VSO) sans avoir à installer quoi que ce soit 🙂