Vous pouvez aborder ce chapitre de deux manières différentes. Vous le lisez entièrement, sans toucher un clavier, pour vous faire une idée sur ce qu'est Jenkins. Ou, vous pouvez mettre les mains dans le cambouis, et suivre les étapes sur votre machine.
Si vous voulez suivre tranquillement, il se peut que cela nécessite d'installer certains logiciels sur votre machine. Souvenez-vous que la fonction principale de tout outil d'Intégration Continue est de surveiller du code source dans un outil de gestion de configuration, d'en extraire la dernière version et de la construire dès que des modifications sont apportées. Donc, il vous faudra un outil de gestion de configuration. Dans le cas qui nous occupe, nous utiliserons Git. Le code source de notre simple projet se trouve hébergé sur GitHub. Ne vous inquiétez pas, vous ne risquerez pas de perturber ce référentiel avec vos modifications : vous travaillerez sur votre propre réplique et vous pourrez y faire ce que vous voulez. Si vous n'avez jamais utilisé Git et/ou si vous n'avez pas un compte sur GitHub, ne vous inquiétez pas nous vous guiderons pour vos premiers pas et l'installation est très bien documentée sur le site web de GitHub. Nous vous expliquerons comment mettre tout cela en place par la suite.
Dans ce chapitre, nous utiliserons Jenkins pour construire une application Java avec Apache Maven. Apache Maven est un outil de build très largement utilisé dans le monde Java, avec de nombreuses et puissantes fonctionalités telles que la gestion déclarative des dépendances, le principe de convention plutôt que configuration et un très grand nombre de plugins. Pour construire tout cela, nous utiliserons les dernières versions du Java Development Kit (JDK) et d'Apache Maven, mais si vous ne les avez pas déjà installées sur votre machine ne vous inquiétez pas! Comme nous le verrons, Jenkins saura les installer pour vous.
La première chose que vous allez devoir installer sur votre machine est Java.
Hudson est une application web Java web application, aussi vous aurez besoin au minimum
du Java Runtime Environment, ou JRE
pour l'exécuter. Pour les exemples de ce chapite, vous devrez avoir une version
récente de Java 6 (ces exemples ont été écrits avec Java 6 update 17 et la dernière
version disponible au moment où j'écris ces mots est Java 6 update 19). Si vous n'êtes pas
sûr, vous pouvez vérifier votre version depuis la ligne de commande (en ouvrant une console
DOS sous Windows) et en exécutant java -version
.
Si Java est installé sur votre machine vous devriez obtenir un résultat ressemblant à ceci :
$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
Si vous n'avez une version déjà installée ou si votre version est plus ancienne, téléchargez et isntallez la dernière version de la JRE depuis le site web de Java, comme le montre Figure 2.1, “Installer Java”.
Etant donné que nous utiliserons Git, il va vous falloir installer et configurer Git sur votre machine. Si vous êtes novice en ce qui concerne Git, un petit tour sur le site de référence de Git peut vous être utile. Et si vous vous perdez en cours de route, la manière de procéder est entièrement décrite dans les pages d'aide de GitHub.
Avant toute chose, il vous faut installer Git sur votre machine. Cela exige de télécharger le programme d'installation approprié pour votre système d'exploitation depuis le site web de Git. Il existe des programmes d'installtion packagés pour Windows et Mac OS X. Si vous utilisez GNU/Linux vous êtes sur le terrain de Git : les distributions GNU/Linux. Sur Ubunut ou toute autre distribution basées sur Debian, vous pouvez exécuter une commande comme celle-ci :
$ sudo apt-get install git-core
Sur Fedora ou toute distribution basée sur RPM, il pouvez utiliser yum
à la place :
$ sudo yum install git-core
Et, puisqu'il s'agit de GNU/Linux, vous avez aussi la possibilité d'installer l'application à partir des sources. Les instructions sont disponibles sur le site web de Git.
Une fois cette opération réalisée, vérifiez que Git est correctement installé en exécutant la commande suivante :
$ git --version
git version 1.7.1
Ensuite, si vous n'en possédez pas déjà un, vous devrez vous créer un compte Github. Cela est simple et (pour notre usage du moins) gratuit, sans compter que tous les gars cools en ont un. Allez sur la page d'enregistrement de GitHub et choissisez l'option “Create a free account”. Vousn'aurez qu'à fournir un nom d'utilisateur, un mot de passe et votre adresse e-mail (cf. Figure 2.2, “Créer un compte GitHub”).
GitHub utilise les clefs SSH pour établir une connexion sécuriésée entre votre ordinateur et les serveurs Github. Les configurer n'est pas compliqué mais demande un peu d'effort : heureusement il existe des instructions claires et détaillées pour chaque système d'exploitation sur le site de GitHub.
Comme nous l'avons mentionné plus tôt, tout les exemples de code de ce livre sont stockés sur GitHub, à l'URL suivante : https://github.com/wakaleo/game-of-life. C'est un dépôt public, vous pouvez donc librement voir les sources en ligne et récupérer votre propre copie de travail. Toutefois, si vous voulez effectuer des changements, vous devrez créer votre propre fork. Un fork est une copie personnelle d'un dépôt que vous pouvez utiliser à votre guise. Pour créer un fork, connectez à votre compte GitHub et cliquez sur l'URL du dépôt. Cliquez ensuite sur le bouton Fork (see Figure 2.3, “Forker le dépôt des exemples de code”). Cela créera votre propre copie du dépôt.
Une fois que vous avez forké le dépôt, vous devez cloner une copie
locale pour vérifier que tout est correctement configuré. Ouvrez la ligne de commande
et exécutez la commande suivante (en remplaçant
<username>
avec votre propre nom d'utilisateur GitHub):
$ git clone git@github.com:<username>
/game-of-life.git
Ceci va “cloner” (ou faire un check out, en termes Subversion) une copie du projet sur votre disque local :
git clone git@github.com:john-smart/game-of-life.git Initialized empty Git repository in /Users/johnsmart/.../game-of-life/.git/ remote: Counting objects: 1783, done. remote: Compressing objects: 100% (589/589), done. remote: Total 1783 (delta 1116), reused 1783 (delta 1116) Receiving objects: 100% (1783/1783), 14.83 MiB | 119 KiB/s, done. Resolving deltas: 100% (1116/1116), done.
Vous devriez à présent disposer d'une copie locale du projet que vous pouvez construire et exécuter. Nous utiliserons ce projet plus tard pour déclencher des changements dans le dépôt.