Projet
Ce projet a pour but de réaliser une intégration continue via Jenkins, d'une application PHP.
Cloner l'application
git clone https://gitlab.imt-atlantique.fr/f21munie/project_jenkins_php.git
cd project_jenkins_php
Lancement manuel
Générer l'image de l'application
cd project_jenkins_php
docker build -t checktva src/
Exécuter l'application
cd project_jenkins_php
- cas où il y a les trois arguments :
docker run --rm -ti checktva php checktva.php product food 2
- cas où il manque un argument :
docker run --rm -ti checktva php checktva.php product food
- cas où il y a une erreur de type :
docker run --rm -ti checktva php checktva.php product food l
Effectuer les tests manuellement
cd project_jenkins_php
docker build -t phpunit build/docker/phpunit/
docker run --rm -ti -v "$PWD":/app phpunit make
Intégration continue sur Jenkins
Lancer les services jenkins / regitry / ui
cd project_jenkins_php
docker-compose up
Installation de Jenkins
1- Allez sur votre navigateur à l'adresse :
http://localhost:8080
2- Pour débloquer Jenkins : - récupérer le mot de passe généré après le lancement du docker-compose - le coller dans la zone "Mot de passe administrateur" de l'application
3- Personnaliser Jenkins : - sélectionner "Installer les plugins suggérés"
4- Créer le 1er utilisateur administrateur - renseigner les champs demandés
5- Configuration de l'instance : - valider
Créer un projet
1- Sélectionner "Nouveau item"
2- Saisissez un nom de projet (ex: Project_jenkins_php)
3- Sélectionner "Pipeline"
Installer les plugins du projet
1- Allez dans "Tableau de bord"
2- Allez dans "Administrer Jenkins"
3- Sélectionner "Gestion des plugins"
4- Sélectionner "Disponibles"
5- Sélectionner les plugins suivant : - Docker : L'objectif de ce plugin Docker est de pouvoir utiliser un hôte Docker pour provisionner dynamiquement un conteneur Docker en tant que nœud d'agent Jenkins, - Docker API : Ce plugin expose l'API docker-java aux plugins Jenkins. - Docker Slave : Il permet d’utiliser des conteneurs pour configurer les agents de build, sans aucune contrainte sur les images que l’on peut utiliser. - Docker pipeline : Plugin Jenkins qui permet de créer, tester et utiliser des images Docker à partir de projets Jenkins Pipeline. - Warnings Next Generation : Le plug-in Warnings Next Generation collecte les avertissements du compilateur ou les problèmes signalés par les outils d'analyse statique et visualise les résultats. - xUnit : Enregistre les tests xUnit et marque la construction comme instable ou échouer en fonction des valeurs de seuil. - Clover : Ce plugin permet de capturer des rapports de couverture de code à partir d'OpenClover. Jenkins générera et suivra la couverture du code dans le temps. - Blue ocean : Il gère la visualisation des pipelines pour une compréhension rapide et intuitive de l'état du pipeline logiciel. C’est un éditeur de pipeline qui rend leur automatisation accessible en guidant l'utilisateur à travers un processus intuitif et visuel pour créer un pipeline.
6- Sélectionner "Download now and install after restart"
7- Cocher la case "Redémarrer Jenkins quand l'installation est terminée et qu'aucun job n'est en cours"
8- Après téléchargement, relancer le docker-compose et actualiser la page web
9- S'identifier
Lancer le pipeline
1- Sélectionner votre projet
2- Sélectionner "Configurer"
3- Sélectionner "Pipeline" - dans "Définition", choisir "Pipeline script from SCM" - dans "SCM", choisir "Git" - dans "Repository URL", coller le lien du dépôt GitLab (https://gitlab.imt-atlantique.fr/f21munie/project_jenkins_php.git) - sélectionner "Apply" puis "Sauver"
4- Sélectionner "Lancer un build" - le pipeline va se lancer et apparaître dans "Historique des builds" - vous pouvez le sélectionner pour afficher ses résultats - vous pouvez visualiser le pipeline graphiquement en sélectionnant "Open Blue Ocean" puis le pipeline exécuté