# Mettre en place l'intégration continue dans un projet Gitlab ### 1- Ajouter un fichier `.gitlab-ci.yml` au projet Pour configurer l'intégratiojn continue sur un projet Gitlab, on commence par ajouter au projet un fichier nommé `.gitlab-ci.yml`. Dans le cas d'un projet python, voilà la version la plus simple possible, qui executera les tests unitaires avec nose2 et retournera leurs résultats et leur couverture: test: script: - nose2 > * `test`: nom du job (il peut y en avoir plusieurs) * `script`: seule option requise pour exécuter le job * `nose2`: commande à exécuter pour lancer les tests ([nose2](https://github.com/nose-devs/nose2) est un outil de tests pour python) [**Plus d'infos sur la création du .gitlab-ci.yml**](http://docs.gitlab.com/ce/ci/quick_start/README.html) ### 2- Installer et configurer un Runner spécifique Il faut ensuite installer un runner sur la machine qui exécutera les tests > Un runner peut être partagé (admin requis), ou spécifique à un projet. > Il est apparemment déconseillé d'installer le runner sur la machine où tourne Gitlab [**Plus d'infos sur l'installation de runners**](https://docs.gitlab.com/runner/install/) #### Sous Windows Commencer par télécharger une archive de l'exécutable du runner gitlab en [x86](https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-386.exe) ou [x64](https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-amd64.exe). Créer un répertoire et y dézipper le fichier téléchargé. > **ATTENTION**: c'est dans ce répertoire que seront exécutés les jobs de gitlab! On lance ensuite dans ce dossier une invite de commande, et on lance la commande `register` du runner pour le brancher au serveur gitlab. Les infos requises pour l'enregistrement se trouvent dans le menu `settings` du projet gitlab (`CI Pipelines` > `Runners`) ![register-example](Gitlab-CI/runner-register.PNG) La méthode la plus simple consiste à lui donner l'executeur `shell`. Les commandes listées dans le fichier .gitlab-ci.yml seront alors exécutées à chaque build, et les jobs seront considérés comme réussis si chaque ligne exécutée retourne un code `exit 0`. Au premier lancement du runner, il faut aussi l'installer et le démarrer: gitlab-ci-multi-runner install --user --password gitlab-ci-multi-runner start > **ATTENTION**: Sous windows, le compte d'utilisateur utilisé pour installer le runner doit avoir les droits d'ouvrir une session en tant que service! Voir `Panneau de configuration` > `Outil d'administration` > `Stratégie de sécurité locale` > `Stratégies Locales` > `Attribution eds droits utilisateurs` > `Ouvrir une session en tant que service`, et ajouter le compte utilisateur en question. Une fois cela fait, le runner devrait apparaitre dans le menu `Settings` > `CI/CD Pipelines` de votre projet Gitlab. ![runners](Gitlab-CI/specific-runners-list.PNG) ### 3- Exploiter l'intégration continue Vous pouvez maintenant: - Consulter les résultats des builds dans `Pipelines` > `Jobs` - Ajouter les balises au readme du projet (urls dans `Settings` > `CI/CD Pipelines`) ![markups](Gitlab-CI/balises-ci.PNG) - Compléter votre fichier .gitlab-ci.yml avcec d'autres instructions et jobs