diff --git a/README.md b/README.md index 78a84b2e9aa5841705a72960974df18ef2448d9b..1e6055a5227a4210d379e2b064ffc1e5a37a1bb4 100644 --- a/README.md +++ b/README.md @@ -314,11 +314,13 @@ Faire en sorte que PHPunit génère 2 rapports : ### Upload des artefacts -Définir les rapport de test en temps qu'artefact gitlab- CI. + +Définir les rapports de test en temps qu'artefact et créer une dépendance entre votre job TU et sonarqube afin que les artefacts puissent être récupérés par SonarQube. ### Intégration des rapport à SonarQube -Intégrer vos rapports de coverage et de tests à SonarQube. +Intégrer vos rapports de coverage et de tests à SonarQube en modifiant le fichier sonar-project.properties + ### Correction de vos fichier @@ -328,5 +330,88 @@ Corriger vos fichiers afin que la quality gate SonarQube soit OK. A faire valider : -- [ ] Intégration des rapports de tests dans SonarQube -- [ ] Corrections apportées et Quality Gate OK +- [ ] Rapport de tests +- [ ] Rapport de coverage +- [ ] Présence de vos rapports dans les artefacts Gitlab CI +- [ ] Dépendance entre vos jobs TU et SonarQube +- [ ] Résumer des tests présent dans le statut de votre pipeline Gitlab CI +- [ ] Prise en compte de vos rapports de tests et de coverages par SonarQube + +## Etape 5 : Quality Gate SonarQube + +### Corrections de vos sources + +Corriger vos sources afin de n'avoir plus aucun problème de type "code Smell" + +### Corrections de la couverture de test + +Modifier les tests pour obtenir 100% de couverture du code à 100% +Faire en sorte que le/les tests ajoutés ne soit pas OK. +Faire en sorte que le job TU finisse sans erreur avec ou sans présence d'erreurs (code retour 0). + +### Modification Quality Gate SonarQube + +Bien que l'ensemble des tests ne soient pas OK, le Quality Gate SonarQube est OK. +Créer une quality gate but3 identique à celle par défaut qui inclus en plus une contrainte avec 100% des tests OK. +Configurer votre projet avec cette Quality Gate + +### Validation étape 5 + +A faire valider : + +- [ ] job TU non bloquant en cas d'erreur +- [ ] Quality Gate but3 +- [ ] Statut de votre pipeline GitLab & projet SonarQube avec un TU KO, puis tous les TU OK. + +## Etape 6 : Déploiement Continue + +### Créer une application + +Créer une application de votre choix qui utilisera la librairie but\Average. +L'application est située dans le fichier src/index.php. + +### Créer un job "release" + +Ce job de releasing devra : + - être dépendant du passage de la quality gate. + - créer une image docker "but-$groupe" qui embarquera votre application + - déposer cette image docker dans la registry docker de votre projet gitlab + +Aidez vous de la [documentation Gitlab](https://docs.gitlab.com/ee/user/packages/container_registry/build_and_push_images.html) + +Fichier Dockfile nécessaire à la construction de votre image docker à la racine de votre dépôt : +``` +FROM php:8.1-apache +COPY src/ /var/www/html/ + +``` + +### Crer un job "deploy" + +Le job de déploiement consiste à se connecter en SSH sur la machine cible du déploiement (SSH_HOST) à l' aide d'un nom d'utilisateur (SSH_USER) et d'une clé privée (SSH_KEY). +Puis de lancer sur la machine cible une instance de l'image docker générée lors du job "release". + +Ce job de déploiement devra : + - être dépendant du releasing de votre image docker + - se baser sur une image [ubuntu:latest](https://hub.docker.com/_/ubuntu) + - s'appuyer sur des variables d'environnements de votre projet définit ci dessous + + + Variables d'environnements à configurer : + - SSH_HOST : 172.17.x.x + - SSH_USER : but + - SSH_KEY : +``` +TbC +``` + - DOCKER_NAME : but-run-$groupe + - DOCKER_PORT : 10 000 + $groupe (10 006 si $groupe est égal à 6) + +### Validation étape 6 + +A faire valider : + +- [ ] pipeline intégrant 4 jobs : TU, SonarQube, release, deploy +- [ ] Image docker présente dans la registry +- [ ] Variables d'environnement correctements renseignées dans le projet +- [ ] Lancer une modification du index.php, suivre la pipeline et visualiser la modication sur http://SSH_HOST:DOCKER_PORT/