Files
rock-paper-scissors/README.md
Maxime Pierront 38a31b3e2b
All checks were successful
rock-paper-scissors/pipeline/pr-main This commit looks good
Update Jenkins pipeline setup instructions in README.
2025-11-27 09:49:34 +01:00

178 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
`/!\ 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
---
## Installation de Jenkins sur la VM
Installer git
```bash
sudo apt install -y git
```
Installer Java
```bash
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
```bash
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](assets/jenkins_start.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](assets/jenkins_home.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](assets/gitea_token.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 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 :
* https://adoptium.net/installation/linux/#deb-installation-on-debian-or-ubuntu
* https://www.jenkins.io/doc/book/installing/linux/#debianubuntu
* https://plugins.jenkins.io/gitea/
* https://www.jenkins.io/doc/book/pipeline/jenkinsfile/