\newpage ## Intégration continue Une fois Gitea et Drone installés et configurés, nous allons pouvoir rentrer dans le vif du sujet : faire de l'intégration continue sur notre premier projet ! ### Créez un dépôt pour `youp0m` Reprenez les travaux réalisés au TP précédent. Nous allons notamment avoir besoin du `Dockerfile` dans la section suivante. Après avoir créé (ou migré pour les plus malins !) le dépôt [`youp0m`](https://git.nemunai.re/nemunaire/youp0m) dans Drone, synchronisez les dépôts, puis activez la surveillance de `youp0m`. Nous allons devoir rédiger un fichier `.drone.yml`, que l'on placera à la racine du dépôt. C'est ce fichier qui sera traité par DroneCI pour savoir comment compiler et tester le projet. ::::: {.warning} Un fichier `.drone.yml` existe déjà à la racine du dépôt. Celui-ci pourra vous servir d'inspiration, mais il ne fonctionnera pas directement sur votre installation. **Vous rencontrerez des problèmes inattendus si vous utilisez le fichier `.drone.yml` du dépôt.** Vous **DEVEZ** partir d'un fichier vide et suivre la documentation pour obtenir un `.drone.yml` fonctionnel. ::::: ### Définir les étapes d'intégration Toutes les informations nécessaires à l'écriture du fichier `.drone.yml` se trouvent dans [l'excellente documentation du projet](https://docs.drone.io/pipeline/docker/examples/languages/golang/). Les étapes sont sensiblement les mêmes que dans le `Dockerfile` que nous avons écrit lors du TP précédent. Committons puis poussons notre travail. Dès qu'il sera reçu par Gitea, nous devrions voir l'interface de Drone lancer les étapes décrites dans le fichier. ![Drone en action](../devops/drone-run.png){height=6cm} ::::: {.warning} **IMPORTANT :** si vous avez l'impression que ça ne marche pas et que vous avez réutilisé le fichier présent sur le dépôt au lieu de partir de l'exemple donné dans la documentation, **commencez en partant de l'exemple de la documentation** ! Le fichier présent sur le dépôt **ne fonctionnera pas** dans votre situation ! ::::: Lorsqu'apparaît enfin la ligne `git.nemunai.re/youp0m`, le projet est compilé ! ### Inspection qualité Nous n'avons pas encore de test à proprement parler. Nous allons utiliser [Sonarqube](https://www.sonarqube.org/) pour faire une revue qualité du code ! Tout d'abord, il faut lancer le conteneur Sonarqube (SRS, pensez à l'ajouter à votre playbook !) :