@@ -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)