Créer des releases avec Gitlab CI/CD
Dans le cadre de l’automatisation du build et de l’intégration continue, je vous propose de voir comment générer des releases dans un CI GitLab.
Depuis peu, il est possible de le générer avec le mot réservé release, mais je vous recommande de plutôt d’utiliser l’API pour créer des versions. En effet, l’api de création d’une release est plus complète et permet notamment d’enregistrer des liens vers d’autres artefacts, comme les binaires stockés dans nexus.
Creation d’une release dans l’interface de Gitlab
Pour comprendre ce qu’est une release je vous propose dans un premier temps de le faire dans l’interface. Seuls les utilisateurs avec des autorisations de développeur ou plus peuvent créer des versions:
- Cliquez sur Project Overview > Releases
- Cliquez sur le bouton New Release
- Vous pouvez soit créer un nouveau tag, soit l’associer en le choisissant à partir de la liste Create From.
- Si vous créez un nouveau tag, ouvrez la liste déroulante Create From, sélectionnez une branche, une balise ou un commit SHA à utiliser lors de la création du nouveau tag.
- Vous pouvez y associer des milestones
- Dans la partie links vous pouvez ajouter des liens vers d’autres artefacts.
- Cliquez sur le bouton Create Release pour enregistrer votre release.
Destruction d’une release
On ne peut pas détruire une release directement, pour cela il faut tout simplement détruire le tag associé.
Création d’une release dans votre CI Gitlab
Il existe deux moyens de créer une release dans le ci :
- via le mot réservé release
- via un appel à l’api de gitlab
Création d’une release avec le mot réservé
Moins complet que l’appel api, le mot réservé release, permet de creér des releases mais sans liens vers des artefacts.
Exemple:
release:tag_name Vous devez spécifier un tag pour votre release. Elle peut faire référence à un tag existant ou vous pouvez en créer un nouveau. Lorsque le tag spécifié n’existe pas dans le référentiel, un nouveau est créée à partir du SHA associé du pipeline.
release:description Il est possible de créer une gitlab release note soit en renseignant ce champ soit en indiquant le chemin d’un fichier markdown.
release:ref Si le tag n’existe pas encore, la version est créée à partir de cette ref.
release:milestones Le titre de chaque jalon auquel la version est associée.
release:released_at La date et l’heure auxquelles la version est prête. Par défaut, la date et l’heure actuelles si elles ne sont pas définies. Doit être mis entre guillemets et exprimé au format ISO 8601.
Exemple complet:
Création d’une release via un appel API
Il suffit de remplacer le mot réservé par un appel à l’api comme ceci :
Il faut au préalable créer un private TOKEN.
La définition de l’api se trouve ici ↗
Maj: Attention suite à l’integration de la CLI glab comme CLI officielle de Gitlab, Certaines indications dans ce billet sont peut-être obsolètes!