Skip to content
Snippets Groups Projects
Name Last commit Last update
.gitlab
.gitlab-ci.yml
README.md

Template

Ce dépôt à pour objectif de proposer des conseils et des templates pour démarrer facilement l'intgration continue sur un projet.

Avant de démarrer

Si ce n'est pas déjà fait, nous vous invitons à consulter la documentation disponible dans le MAGO et notamment :

CI/CD

Ce template utilise les fonctionnalités suivantes de la forge pour vous permettre de faire de l'Intégration Continue :

  • Gitlab CI
  • Docker

Par défaut, votre projet bénéficie d'un Runner Gitlab actif et partagé par tous les projets.

Ce runner est lancé via Docker et nécessite l'utilisation de Docker-in-Docker. Ce runner n'a que pour objectif de construire vos images.

Si vous souhaitez effectuer des déploiements automatiques via Gitlab, il vous faudra intégrer votre propre runner.

Vous retouverez les informations d'installation et de liaison d'un runner via le menu Settings > CI / CD puis déplier la zone Runners et suivre les instructions de la partie Set up a specific Runner manually.

Docker

La configuration de Gitlab CI, sur la partie build assume que vous utilisez Docker et que votre fichier Dockerfile est à la racine du dépôt.

Si ce n'est pas le cas, il vous faudra modifier les lignes contenant l'instruction docker build.

Le template utilise également l'option DOCKER_BUILDKIT=1 avant le build. Cette option, disponible à partir de Docker 18.09 permet notamment d'accélérer le build en mutualisant les couches si possibles. Cela est particulièrement utile dans le cas de l'utilisation de la fonctionnalité multi-stage de Docker.

SonarQube

Allez sur SonarQube puis créez un projet (de préférence utiliser le nom du dépot GitLab comme nom de projet sur SonarQube).

IMPORTANT ! Bien conserver le token qui est généré à la création du projet, il est nécessaire pour la CI et n'est disponible qu'une seule fois !

Une fois les informations récupérées :

  • allez dans le projet Gitlab
  • entrez dans le menu Settings > CI / CD, dépliez la section Variables
  • puis ajoutez les variables suivantes :
  • key = SONAR_PROJECT_KEY, value = [clé de projet ajouter dans SonarQube]
  • key = SONAR_TOKEN, value = le token généré à la création du projet dans Sonar.

Renovatebot

Via la forge, il est possible d'être notifié des nouvelles versions de dépendances d'un projet grâce à l’outil renovatebot.

Lorsque renovatebot s'exécute sur votre dépôt, il recherche les références aux dépendances et, s'il existe de nouvelles versions disponibles, Renovate peut créer des demandes de fusion pour mettre à jour vos versions automatiquement.

Pour que cela soit fonctionnel dans vos projets, voici les actions à réaliser :

  1. Ajouter l’utilisateur "renovate-bot" sur le projet, avec le droit "développeur". Le droit développeur permet à renovatebot de créer des merge request
  2. L’outil renovatebot se lance automatiquement tous les jours à 03h00 du matin, la première MR qu'il fera sera pour se configurer au projet auquel il a été ajouté.
  3. Le lendemain, valider la premiere MR de configuration, cela crée un ticket pour le suivi des mises à jour de dépendances.
  4. Ensuite tous les jours renovatebot va s'exécuter et créer une demande de fusion par dépendance à mettre à jour, et mettre à jour le ticket de suivi des dépendances.

Templates d'Issues et de Merge Request

Dans le dossier .gitlab, vous retrouverez 2 exemples de templates.

.gitlab
├── issue_templates
│   ├── Bug.md
│   └── Story.md
└── merge_request_templates
    ├── Bug.md
    └── Story.md

Vous pouvez ajouter, modifier ou supprimer autant de templates que vous le souhaitez, tant que l'aborescence est respecté.

Les templates sont à rédiger au format Markdown et doivent porter l'extension .md.

Pour plus d'information sur l'utilité des modèles et comment les utiliser :