Débuter avec GitLab CI/CD : créer son premier pipeline DevOps pas à pas

  1. Débuter avec GitLab CI/CD : créer son premier pipeline DevOps pas à pas
  2. Prérequis
  3. Création de notre projet exemple
  4. Création du fichier .gitlab-ci.yml
  5. Lancement du pipeline
  6. Consultation des résultats

Débuter avec GitLab CI/CD : créer son premier pipeline DevOps pas à pas

L’un des piliers du DevOps est l’automatisation. Cela permet au développeur de se concentrer sur le plus important : le développement. Toute la partie lancement de tests, construction de l’application, déploiement, monitoring… N’est alors plus un soucis étant donné qu’elle se fait toute seule. Le gros avantage de Gitlab CI/CD est qu’il n’y a besoin d’assembler 3-4 outils différents : un seul .gitlab-ci.yml, et hop, le pipeline roule comme sur des roulettes.

Voici un lien vers la documentation, assez complète : https://docs.gitlab.com/

Prérequis

Avant de commencer à rentrer dans le vif du sujet, voici les prérequis indispensables à la création d’un pipeline :

  • Créer un projet sur gitlab,
  • Avoir un role de mainteneur ou de propriétaire du projet.

C’est bon on est partis ? Allons y !

Création de notre projet exemple

Commençons par créer un projet très simple afin d’avoir un exemple concret de pipeline. Le projet sera crée en JS mais il peut être fait en n’importe quel autre langage.

Pour cela nous allons créer un dossier superProjet qui contiendra 3 fichiers.
Le premier fichier est le package.json, il contient les informations du projet ainsi que la liste des dépendances associées. Nous ne mettrons que JEST pour le lancement de tests avec JavaScript.

{
  "name": "mon-super-projet",
  "version": "1.0.0",
  "dependencies": {
    "jest": "^29.0.0"
  },
  "scripts": {
    "test": "jest"
  }
}

Ensuite, créons notre fichier principal sum.js. Rien de très difficile ici non plus, nous faisons juste une fonction qui fait une somme de 2 nombres :

function sum(a, b) {
  return a + b;
}
module.exports = sum;

Enfin, créons notre fichier de test sum.test.js qui contient les tests liés au fichiers sum.js. Nous ne faisons que vérifier ici que nous avons le résultat attendu lors des tests de la fonction de somme.

Ces exemples viennent de la documentation Getting Started · Jest.
N’hésitez pas a aller y faire un tour pour en savoir plus!

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Création du fichier .gitlab-ci.yml

Dans le cadre de cet article nous voulons que notre pipeline se limite à 3 étapes : la construction du projet, le lancement des tests (si vous n’en avez pas je vous invite à lire cet article sur l’importance des tests unitaires Comment écrire des Tests Unitaires sans perdre la tête ?) et enfin le déploiement dans nos serveurs.

Attention : dans cet exemple nous n’envoyons pas vraiment à un serveur, nous n’avons que préparé l’étape.

stages:
  - build
  - test
  - deploy

build:
  stage: build
  image: node:18
  script:
    - npm install

test:
  stage: test
  image: node:18
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - echo "Déploiement…"
  environment:
    name: production

Note pipeline a 3 étapes qui sont :

  • l’installation du projet et des dépendances avec la commande npm install,
  • le lancement des tests crées précédement avec npm test,
  • le déploiement en production du projet (dans ce cas cette étape ne fait rien à part afficher un commentaire).

Lancement du pipeline

Une fois le fichier terminé, il ne reste plus qu’à l’ajouter au projet afin que notre tout premier pipeline se lance.

git add .
git commit -m "Mon premier pipeline GitLab CI trop cool"
git push

Consultation des résultats

Une fois le code ajouté au projet sur Gitlab, le pipeline se lance.


Vous pouvez voir les résultats dans la barre de gauche.

Il suffit alors de cliquer sur le pipeline pour avoir les détails. On peut y voir les différentes étapes ainsi que pour chacune d’entre elle les logs liés en cliquant dessus.

Si le pipeline est en vert, alors tout s’est bien passé, si il est en jaune, certaines étapes n’ont pas réussies, s’il est en rouge, c’est que l’étape a échouée. Il faut alors regarder dans les logs la raison afin de la résoudre.

N’hésitez pas a commenter si l’article vous a aidé, les prochains serons peut être un peu plus poussés, il y a beaucoup de manières d’améliorer un pipeline et de bonnes pratiques à savoir !


En savoir plus sur Codequeen blog

📩 Reçois les articles CodeQueen directement dans ta boîte mail !

Laisser un commentaire