📜 Pages
Si vous n'avez pas fait les parties précédentes (issues et/ou CI)
Créer un nouveau projet simple aka "Blank project"
Gitlab propose la fonctionnalité Pages pour facilement exposer un site statique à partir de sources dans un repository.
🐥 Ma première Pages
- Dans le meme projet, via le WebIDE
- créer un répertoire
public
contenant un fichierindex.html
avec un petit bout de code HTML simple (snippet) - modifier fichier
.gitlab-ci.yml
à la racine du projet - ajouter un stage
deploy
et un jobpages
pour ce stage - commiter sur
main
- aller voir le pipeline qui s'exécute
- créer un répertoire
Tip
Le job n'a pas besoin des autres jobs, on peut préciser qu'il ne dépend d'aucun autre pour accélérer son exécution
Success
Le pipeline doit s'exécuter avec succès 🎉
NB: un job a été automatiquement ajouté pages:deploy
, c'est celui-ci qui déploie le site statique
Une fois le pipeline exécuté correctement, aller dans le menu Deploy > Pages
et trouver l'url de votre site
Success
Le site est déployé et accessible 👍
♻️ Mon premier environnement
Pour simplifier l'accès au site, on peut également le lier à un environnement
Dans le fichier .gitlab-ci.yml
en passant soit par le WebIDE soit par le menu Build > Pipeline editor
:
- ajouter le paramétrage nécessaire dans le job
pages
pour qu'un environnement soit créé avec le nom de la branche - commiter
- une fois le pipeline exécuté avec succès, aller dans le menu
Operate > Environments
Success
Le site est déployé et accessible depuis le menu Environments avec le nom main
L'utilisation des environnements pour les pages reste limitée. Plus globalement, cela permet de déployer une application et la lier à un environnement et donc une version du code. Cela amène de la tracabilité sur quelle version a été déployée et quand.
NB: Ce n'est pas GitLab qui héberge l'application déployé. GitLab fait le lien entre un environnement (une URL) et la version du code source associée.
📦 Release du projet
On peut classiquement tagger notre branche main
pour fixer une version. GitLab propose en complément la notion de Release permettant d'avoir un package comprenant cette version.
Depuis la version 15.7, une nouvelle CLI est disponbible : glab. Celle-ci permet d'intéragir facilement avec GitLab et entre autres de créer une release.
-
Dans le
.gitlab-ci.yml
, ajouter un job 📦_release-with-glab dans le stage release pour créer une release à partir d'un tag- pour que glab fonctionne il faut d'abord s'authentifier en utilisant un access token que l'on peut générer depuis le menu
Preferences > Access Token
, accessible en cliquant sur son avatar en haut à droite. Il faut que le token ait les droitsapi
&write_repository
- Une fois authentifié, on peut alors générer sa release
Tip
Bien conservé ce token, vous en aurez besoin plusieurs fois pendant le TP
- pour que glab fonctionne il faut d'abord s'authentifier en utilisant un access token que l'on peut générer depuis le menu
-
Il est surement préférable que le job de release ne s'exécute que lorsque l'on est sur un pipeline lié à un tag...
- Ajouter une
rules
dans ce sens.
- Ajouter une
-
Utiliser le snippet partiel, il faut remplacer:
***
par votre token???
par la règle qui va bien pour que le job ne s'exécute que sur un pipeline lié à un tag###
par la variable pré-définie pour récupérer le nom du tag
Tip
🔑 Mettre un token en dur dans le fichier
.gitlab-ci.yml
est une mauvaise pratique de sécurité. Mettre sa valeur dans une valeur de CI/CD -
Commiter
- Depuis le menu
Code > Tags
, créer un tagv1.0
- Générer une release avec comme titre
🎉 Release <nom_tag>
Success
- La release apparait dans
Deploy -> Releases
avec le titre 🎉 Release✅ - Le job de release ne s'exécute que sur les pipelines liés à un tag ✅
- Les pipelines de main & des tags s'exécutent correctement ✅