Apprendre Jenkins

Introduction

Jenkins est une application puissante qui permet de réaliser une intégration continue et une livraison continue des projets, quelle que soit la plate-forme sur laquelle vous travaillez. C'est une source gratuite et open source qui peut gérer tout type de build ou d'intégration continue. Vous pouvez intégrer Jenkins à un certain nombre de technologies de test et de déploiement. Dans ce tutoriel, nous allons apprendre comment utiliser Jenkins pour créer et tester vos projets logiciels en continu. Ce qui est bein  utile dans des gestions de projet agile de type SCRUM.


Jenkins est un logiciel qui permet une intégration continue. Il sera installé sur un serveur où la compilation des projets aura lieu. Les étapes suivant illustre un flux de travail très simple du fonctionnement de Jenkins : 

Etape 1 : Les développeurs vérifient leur code source.

Etape 2 : Jenkins va récupérer le code source modifié et déclencher tous les tests requis.

Etape 3 : Le résultat de la compilation sera accesible depuis le tableau de bord de Jenkins. Des notifications automatiques peuvent être envoyés aux développeur.

On peut voir la plupart du temps l'outil Hudon associé à Jenkins. Hudson était un outil d'intégration continue Java open-source très populaire développé par Sun Microsystems qui a ensuite été acquis par Oracle. Après l'acquisition de Sun par Oracle, un fork a été créé à partir du code source d'Hudson, et ce fork a donné naissance à Jenkins.

Qu’est-ce que l’intégration continue?

L'intégration continue est une pratique de développement qui oblige les développeurs à intégrer du code dans un référentiel partagé à intervalles réguliers. Ce concept vise à supprimer la recherche de problèmes ultérieures dans le cycle de vie de la compilation d'un projet. L'intégration continue nécessite que les développeurs effectuent des compilations fréquentes. La pratique courante est que chaque fois qu'un code est validé, une compilation de ce même code doit être déclenchée.

La configuration requise

JDKJDK 1.5 ou suppérieur
Mémoire vive2 GB RAM Recommandé
Espace disque Aucune exigence minimale. Notez que puisque toutes les compilations seront stockées sur les machines Jenkins, il faut s’assurer que suffisamment d’espace disque est disponible pour le stockage de ces projets compilés.
Système d’exploitationJenkins peut être installé sur Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FreeBSD, OpenBSDn et Gentoo.
Conteneur JavaLe fichier WAR peut être exécuté dans n’importe quel conteneur prenant en charge Servlet 2.4 / JSP 2.0 ou version supérieur (par exemple, Tomcat 5).

Télécharger Jenkins

Le site officiel de Jenkins est https://www.jenkins.io/ . En  cliquant sur le lien donné, vous pouvez obtenir la page d'accueil du site officiel de Jenkins comme indiqué ci-dessous :
Par défaut, la dernière version de support à long terme (Long-Term support release) est disponibles au téléchargement. Les versions précédentes sont également disponibles en téléchargement. IL faut donc cliquer sur l'onglet version du support à long terme dans la section de téléchargement de Jenkins(Long-Term support release).

Installer Jenkins sur un serveur GNU/Linux Debian

Dans l’exemple suivant nous allons utiliser le war Jenkins e non le système de packaging du Système Gnu\Linux Debian.

Etape 1- Installer java

sudo apt update
sudo apt install default-jdk
java -version

Etape 2- Installer Jenkins

sudo sudo adduser bagetuser --system --no-create-home
cd /usr/local/bin
sudo mkdir jenkins
sudo chown jenkins:$USER  -R /usr/local/bin/jenkins
sudo chmod 770 -R  /usr/local/bin/jenkins
cd /usr/local/bin/jenkins
wget https://get.jenkins.io/war-stable/2.263.1/jenkins.war

Etape 3 – Tester que le serveur interne à jenkins(winston) fonctionne en le lançant sur le port 7171.

java -jar jenkins.war --httpPort=7171

Etape 4- Créer le service Jenkins

sudo nano /etc/systemd/system/jenkins.service
sudo mkdir -p /home/jenkins/.jenkins
sudo chown jenkins:$USER -R /home/jenkins/.jenkins
sudo chmod 770  -R /home/jenkins/.jenkins
[Unit]
Description=Jenkins service

[Service]
WorkingDirectory=/home/christophe/.jenkins
ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins/jenkins.war --httpPort=7171
Restart=always
# Restart service after 10 seconds if the java service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=java-jenkins  
User=jenkins

[Install]
WantedBy=multi-user.target

Enregistrez le fichier et activez le service :

sudo systemctl enable jenkins.service

Se connecter à Jenkins

Taper l’url suivante https://jenkins.brachet-christophe.fr/login?from=%2F , vous devriez avoir accès la page suivante vous demandant de taper le login de l’administrateur:

On récupère le mot de passe depuis le fichier : /home/jenkins/.jenkins/secrets/initialAdminPassword

sudo less /home/jenkins/.jenkins/secrets/initialAdminPassword