Travaux Pratiques CI/CD

Le but de ce TP est dutiliser un git déjà existant et dy installer une multibranche pipeline Jenkins.

Copier le git du TP sur son profil

Se rendre sur : https://grond.iut-fbleau.fr/pierront/rock-paper-scissors

Faire un fork

Créer la VM pour jenkins

Créer la règle pare-feu pour accéder aux ports 8080 et 8081

Aller dans la section Pare-Feu

  • Cliquer -> Créer une règle de pare-feu
    • Nom : jenkins-rule
    • Sens du trafic : Entrée
    • Tag cibles : jenkins
    • Plages IPv4 source : 0.0.0.0/0
    • Cocher TCP
    • Ports : 8080, 8081
  • Puis créer

  • Créer la VM
    • Configuration de la machine
      • Nom : jenkins
      • Région : la plus proche
      • Série : E2 / e2-medium
    • Mise en réseau
      • Cocher Autoriser le trafic HTTP
      • Cocher Autoriser le trafic HTTPS
      • Tags réseau : ajouter jenkins
    • Créer la VM

Installation de Jenkins sur la VM

Installer git

sudo apt install -y git

Installer Java

sudo apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jdk

Installer Jenkins

sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install jenkins

Verifier s'il a bien démarrer : systemctl status jenkins

Se rendre sur l'adresse IP de la VM : http://<IP_EXTERNE_VM>:8080

Vous devriez voir la page d'accueil de Jenkins img.png

  • Suivre les instructions pour la creation de compte admin
    • Selectionner : Install suggested plugins
    • Créer un nouveau compte admin
    • Voir cette page img.png

Configuration de Jenkins avec Gitea

Installer le plugin Gitea

  • Aller dans la section Manage Jenkins (roue crantée) -> Plugins
  • Rechercher Gitea
  • Installer le plugin

Configurer Maven

  • Aller dans la section Manage Jenkins (roue crantée) -> Tools
  • Add Maven
    • Nom : maven-3.9
    • Cocher Install automatically
    • Version : 3.9.11
  • Cliquer sur Save

Récupérer un token Gitea

  • Se rendre sur Gitea
  • Cliquer sur profil -> Settings -> Applications -> Generate new token
    • Nom du jeton : jenkins-token
    • Avec ces options : img.png
    • Cliquer sur Generate token
    • Copier le token pour ne pas le perdre

Configurer Jenkins pour utiliser Gitea

  • Aller dans la section Manage Jenkins -> System
  • Add Gitea Server
    • Choisir le nom du serveur (grond)
  • Metter l'url du serveur : https://grond.iut-fbleau.fr
    • Cocher Manage hooks
      • Cliquer sur Add +
      • Kind : Gitea Personal Access Token
      • Token : celui copié dans la section précédente
      • ID : gitea-token
    • Cliquer sur Add
    • Puis save

Création d'un pipeline

  • Aller dans la section Manage Jenkins -> New Item
  • Nommer le projet : rock-paper-scissors
  • Choisir le type de projet : Multibranch Pipeline
  • Cliquer sur OK
  • Add a source
    • Gitea
    • utiliser le jeton gitea-token
    • owner : <votre nom d'utilisateur gitea>
    • Choisir le projet : rock-paper-scissors
  • Choisir le provider : Git
  • Choisir le repository : https://grond.iut-fbleau.fr/pierront/rock-paper-scissors.git
  • Cliquer sur Save

Voir que le scan se passe bien.


Tester le pipeline

  • Aller dans la section Build History -> Build Now
  • Voir que le pipeline se passe bien

Tester l'application via cette url : http://<IP_EXTERNE_VM>:8081/swagger-ui/index.html

Gestion du Jenkinsfile

  • Regarder les étapes pour comprendre ce que fait le Jenkinsfile

Ajouter le puits dans le code java

Le puits bat la pierre et les ciseaux. Le puits est battu par la feuille.

Grace à notre pipeline on peut voir le si le code fonctionne bien via les tests unitaires. Puis on peut tester réelement grace au deploiement sur la VM de l'application java.

Sources :

Description
No description provided
Readme 314 KiB
Languages
Java 100%