Objectif

L'objectif de cette première séance est de vous familiariser avec l'interface Web de GitLab, et ainsi à certains des outils fournis par ce logiciel.

GitLab est un outil puissant qui couvre toute la chaîne Dev(Sec)Ops, de la création conceptuelle du projet jusqu'à son déploiement logiciel et la surveillance de son fonctionnement. Comme nous le verrons, cet aspect se concrétise visuellement dans l'interface d'un projet, car toutes les étapes de la chaîne DevOps se retrouvent dans les menus qui sont disponibles sur la gauche de l'interface.

Prise en main et configuration de GitLab

En principe, vous avez tous un compte GitLab sur l'instance disponible à l'IUT à l'adresse suivante : https://gitlabinfo.iutmontp.univ-montp2.fr

Connectez-vous puis effectuez les instructions suivantes dans l'ordre.

Vous allez dans un premier temps régler les différentes préférences du logiciel à votre convenance. Pour ce faire, cliquez sur l'icône de couleur en haut à gauche, qui correspond aux différentes options que vous avez sur votre compte utilisateur. L'édition du profil est classique et vous permet par exemple d'associer une image à votre avatar. Nous allons ici nous intéresser en particulier à la section préférences. Prenez le temps de bien lire les différentes options disponibles et de les régler à votre convenance.

La seule option que vous devrez tous avoir en commun est le réglage de la localisation, c'est-à-dire le langage de l'interface. Nous allons régler cette option sur English. La raison est simple : l'ensemble des concepts qu'on retrouve dans les différentes étapes d'une chaîne DevOps sont utilisés pour construire les menus de GitLab. Ainsi, pour s'y retrouver, il est beaucoup plus simple de travailler en anglais car il y aura une correspondance directe entre les mots utilisés dans l'interface et les concepts que nous serons amenés à manipuler, notamment pour l'édition du pipeline d'intégration continue.

Une fois ce réglage effectué, n'hésitez pas à visiter les différents menus disponibles dans "User settings" afin d'avoir une idée des différentes possibilités offertes par le logiciel.

Création et initialisation d'un projet dans GitLab

L'interface de GitLab se modifie en fonction de votre activité. En haut à gauche, juste en dessous des icônes principales, vous pouvez sélectionner "Your work". Vous devriez voir les projets que vous avez déjà créés dans GitLab. Si vous n'avez jamais créé de projets, vous pourrez le faire depuis la page qui s'affiche alors.

La principale fonctionnalité de GitLab est de fournir une interface graphique permettant de visualiser une arborescence de fichiers sources gérés avec Git. Il est donc important de maîtriser ce dernier logiciel. Dans cette section, nous allons ainsi effectuer quelques manipulations simples qui sont récurrentes lorsqu'on travaille avec un projet géré avec Git.

Dans un premier temps, nous allons donc voir les deux manières d'initialiser un projet : de zéro depuis l'interface de GitLab ou en important une arborescence existante sur votre machine.

Création d'un projet depuis GitLab et importation sur votre machine





Exercice 1:

Créer un nouveau projet en sélectionnant l'option "Create blank project". Donnez-lui un nom, puis dans la section "project URL", ajoutez votre nom d'utilisateur entend que "namespace". Dans la section " Project Configuration " laisser cochée l'option " Initialize repository with a README ".

Une fois le bouton de création cliqué, vous vous retrouvez directement sur la page permettant de visualiser le code source de votre projet, sur la branche par défaut "main". Le fichier README.md créé par défaut contient de nombreuses informations utiles pour une gestion efficace d'un projet. Prenez le temps de le lire en entier.

Dans la première partie, le fichier README.md explique notamment comment synchroniser votre projet avec un répertoire local de votre machine. De deux choses l'une, soit vous n'avez aucun fichier source sur votre ordinateur, soit vous avez déjà des fichiers du projet localement.

Dans cette première partie, nous allons prendre la première hypothèse. Vous allez donc cloner localement le projet afin de pouvoir travailler avec localement. Pour obtenir l'URL de clonage, il suffit de cliquer sur le bouton clone et de sélectionner l'URL correspondante (ssh ou https, les deux doivent fonctionner sans problème). Ensuite, ouvrez un terminal et positionnez-vous à l'endroit de votre système de fichiers ou vous souhaitez créer le projet, puis tapez la commande "git clone URL". Cela devrait créer le répertoire correspondant au projet qui se trouve sur GitLab. Positionnez-vous ensuite à l'intérieur du répertoire ainsi créé.

Faites quelques manipulations en créant un nouveau fichier localement puis commiter le avant de faire un push. Cette modification devrait maintenant être visible sur l'interface de GitLab. Vérifiez le.





Exercice 2:

Faites maintenant la même opération depuis l'interface de GitLab : création d'un fichier puis validation. Il existe de nombreuses manières de créer et de modifier les fichiers depuis l'interface de GitLab : il existe notamment un IDE intégré. Faites quelques essais et validez vos modifications en effectuant un commit.

Afin de récupérer ensuite les modifications localement, utilisez dans votre terminal la commande suivante : git pull

Refaites les mêmes opérations mais sur une nouvelle branche : localement (puis push) puis depuis l'interface de GitLab (puis pull)

Si vous avez du mal avec Git, n'hésitez pas ouvrir le cours qui se trouve sur la page d'accueil de cet enseignement.

Importation d'un projet depuis votre machine sur GitLab





Exercice 3:

Dans cette partie, nous allons simplement voir comment cela se passerait si nous avions déjà des fichiers en local et que nous désirions créer un nouveau projet sur GitLab et pousser tous les fichiers dessus.

Dans un nouveau répertoire de votre système de fichiers, vous allez créé un nouveau projet géré par Git à partir de zéro. Créer un nouveau répertoire pour le projet puis mettez-vous à l'intérieur et tapez la commande "git init", elle permettra d'initialiser le dépôt. Créez un ou deux fichiers sur la branche principale puis commiter les.





Exercice 4:

Créez maintenant un nouveau projet dans l'interface de GitLab, toujours avec l'option "Create blank project".

Mais cette fois, vous allez suivre les directives données dans le fichier README.md qui correspondent à ce que nous voulons faire : "push an existing Git repository with the following command"

En principe, vous devriez vous retrouver face à un petit problème au moment d'effectuer la commande "git push -uf origin main". Étudiez bien le message d'erreur renvoyé par cette commande et trouvez comment résoudre ce problème depuis l'interface de GitLab. La solution se trouve dans le menu Code dans l'interface de GitLab.





Exercice 5:

Une fois que vous aurez résolu le problème, cela veut dire que vous maîtrisez les deux manières de créer un nouveau projet sous GitLab et que vous êtes capables de créer de nouvelles branches et de les récupérer localement ou de les pousser sur le dépôt distant géré par GitLab. Si vous pensez que ce n'est pas le cas, prenez le temps de retaper quelques commandes permettant de tester la création de nouvelles branches, la modification de fichiers et leur validation, et cela des deux côtés (depuis GitLab ou localement).

Suppression des deux projets de test





Exercice 6:

Avant de continuer, nous allons supprimer les deux projets que nous avons créés pour tester les commandes de base. Explorer le menu "Settings" d'un des projets pour trouver comment faire.

Création d'une nouvelle tâche (Issue)





Exercice 7:

Avant d'aller plus loin, nous allons utiliser une fonctionnalité de GitLab qui permet de suivre l'avancement d'un projet de manière efficace : la création d'issues.

Pour ce faire, dans un nouveau projet que vous appellerez testingCICD, vous allez aller dans le menu Plan et sélectionnez la fonctionnalité "issues".

Créez une nouvelle issue et donnez-lui un titre, par exemple "first CICD pipeline", puis une description.

Vous noterez que la description utilise le langage Markdown. Ainsi il est possible de définir des sous tâches, avec des checkbox, dans l'issue en utilisant la syntaxe suivante : - [ ] create a pipeline yaml file. Vous pouvez visualiser le résultat en cliquant sur "preview"

Puis sélectionnez "Assign to me" avant de valider sa création.

Création d'un premier pipeline d'intégration continue





Exercice 8:

Dans cette partie, vous allez suivre pas à pas les différentes étapes de création du pipeline données dans le cours afin de vous familiariser avec la création de ce type de fichiers.

À noter que, pendant le cours que je vous ai donné, je vous ai montré ces différentes étapes en modifiant souvent directement le fichier depuis l'éditeur de pipeline présent dans l'interface de GitLab.

Dans la pratique, on fonctionne plutôt en déclenchant les pipelines avec des push effectués localement. Essayez de privilégier cette deuxième solution afin de commencer à prendre l'habitude de ce fonctionnement.

Pour rappel, les outils que vous allez manipuler et la visualisation des pipelines se trouvent dans le menu "build" de l'interface de votre projet dans GitLab.





Exercice 9:

Prenez maintenant le temps de relire le cours et d'explorer plus avant les différents liens qu'il contient vers la documentation de GitLab et autres (liens violets).