Premier workflow avec nodejs slides
Premier workflow Hello World¶
Un pipeline est constitué de stages, qui contiennent des jobs. Chaque job effectue une tâche précise. Voici un exemple minimaliste de pipeline CI pour afficher "Hello World!" :
Dans cet exemple : - Nous avons un seul stage appelé test - Le job hello_world_job est exécuté dans ce stage et il utilise la commande echo pour afficher "Hello, World!"
Création d'une première application Node.js¶
Créez un nouveau projet Node.js :
Création d'une première application Node.js¶
Ensuite, créez un fichier index.js avec le contenu suivant pour démarrer un serveur web basique :
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World from Node.js!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
Pour démarrer l'application localement, utilisez :
Votre première application Node.js est maintenant prête
Ajouter un workflow CI pour l'application¶
Ensuite, nous allons ajouter un pipeline CI pour cette application dans le fichier .gitlab-ci.yml
image: node:20
stages:
- install
- build
# Utilisation du cache pour accélérer les futurs pipelines
cache:
paths:
- node_modules/
install_dependencies:
stage: install
script:
- npm ci
# On ne conserve node_modules comme artifact que si on ne veut pas utiliser le cache
# Ici on privilégie le cache pour la performance
build_app:
stage: build
script:
# Assurez-vous d'avoir un script "build" dans votre package.json
- npm run build
Dans cet exemple :
- install_dependencies utilise
npm cipour une installation propre et reproductible basée sur le lockfile - build_app compile ou prépare l'application pour la production
Job bonus¶
Vous pouvez ajouter un job supplémentaire pour vérifier si vos dépendances Node.js sont à jour
Le job check_updates liste les packages ayant une version plus récente. L'option allow_failure permet de ne pas bloquer le pipeline si des mises à jour sont disponibles
Récap¶
Avec ces étapes, vous avez : - Initialisé un pipeline GitLab CI avec un simple "Hello World!" - Créé une application Node.js simple - Ajouté un pipeline CI optimisé avec gestion du cache - Utilisé npm ci pour garantir la reproductibilité des installations - Ajouté une vérification des dépendances obsolètes
N'hésitez pas à itérer et ajouter des stages supplémentaires pour des tests, des vérifications de code, et des déploiements !