Reviewed-on: #7
Travaux Pratiques CI/CD
Le but de ce TP est d’utiliser un git déjà existant et d’y 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
/!\ ATTENTION NE PRENDRE QUE LA BRANCHE MAIN /!\
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
- Configuration de la machine
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

- Suivre les instructions pour la creation de compte admin
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
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
- Cocher Manage hooks
Création d'un pipeline
- Aller sur l'accueil 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 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 :

