L'intégration continue et le déploiement continu avec .gitlab-ci.yml
Dans ce cours, nous allons aborder l'intégration continue (CI) et le déploiement continu (CD) avec GitLab CI/CD en utilisant le fichier .gitlab-ci.yml. Nous allons voir comment configurer différents jobs pour installer les dépendances, exécuter des linters, construire le code et déployer l'application. Nous suivrons une approche progressive en commençant par le job d'installation, puis en ajoutant des jobs pour linter le code, construire l'application et enfin déployer le code.
Configuration initiale avec le fichier .gitlab-ci.yml
Le fichier .gitlab-ci.yml est un fichier de configuration utilisé par GitLab CI/CD pour définir les différents jobs et étapes d'un pipeline de construction et de déploiement. Il se trouve à la racine de votre projet GitLab. Voici un exemple de configuration initiale :
stages:
- install
- lint
- build
- deployDans cet exemple, nous définissons les différents étapes du pipeline dans l'ordre : installation, linter, construction et déploiement. Ces étapes seront exécutées séquentiellement lors du pipeline.
Job Install
Le job Install est responsable de l'installation des dépendances nécessaires à l'exécution de votre application. Cela peut inclure l'installation des modules Node.js, la configuration de variables d'environnement, etc. Voici un exemple de configuration pour le job Install :
job_install:
stage: install
script:
- npm ciDans cet exemple, nous définissons un job nommé job_install dans l'étape install. Le script du job exécute la commande npm ci pour installer les dépendances à partir du fichier package-lock.json.
Job eslint
Le job eslint est utilisé pour exécuter un linter sur le code source de votre application afin de détecter les erreurs de style et les problèmes potentiels. Voici un exemple de configuration pour le job eslint :
job_eslint:
stage: lint
script:
- npm run lintDans cet exemple, nous définissons un job nommé job_eslint dans l'étape lint. Le script du job exécute la commande npm run lint qui exécute le linter configuré dans votre projet.
Job Build
Le job Build est responsable de la construction de votre application. Cela peut inclure la compilation du code source, la génération de fichiers statiques, etc. Voici un exemple de configuration pour le job Build :
job_build:
stage: build
script:
- npm run buildDans cet exemple, nous définissons un job nommé job_build dans l'étape build. Le script du job exécute la commande npm run build qui effectue la construction de l'application selon la configuration définie dans votre projet.
Job Déploy
Le job Déploy est responsable du déploiement de votre application sur un environnement cible, tel qu'un serveur de production ou de préproduction. Le déploiement peut se faire via SSH, FTP, ou tout autre mécanisme de déploiement pris en charge par GitLab CI/CD. Voici un exemple de configuration pour le job Déploy :
job_deploy:
stage: deploy
script:
- npm run deployDans cet exemple, nous définissons un job nommé job_deploy dans l'étape deploy. Le script du job exécute la commande npm run deploy qui effectue le déploiement de l'application selon la configuration définie dans votre projet.
Exemple complet
Voici un exemple de fichier complet de configuration .gitlab-ci.yml qui inclut les jobs d'installation, de linting, de construction et de déploiement :
image: node:18
stages:
- install
- lint
- build
- deploy
before_script:
- echo "Setup before running jobs..."
after_script:
- echo "Cleanup after running jobs..."
job_install:
stage: install
script:
- npm ci
job_eslint:
stage: lint
script:
- npm run lint
job_build:
stage: build
script:
- npm run build
job_deploy:
stage: deploy
script:
- npm run deploy
needs:
- job_buildDans cet exemple, nous avons :
- Défini l'image
node:18de manière globale, ce qui signifie que tous les jobs utiliseront cette image. - Ajouté une section
before_scriptqui sera exécutée avant le début de chaque job. Ici, nous avons simplement ajouté une étape d'impression pour illustrer son utilisation. Vous pouvez y ajouter d'autres commandes ou configurations spécifiques à votre projet. - Ajouté une section
after_scriptqui sera exécutée après la fin de chaque job. Encore une fois, nous avons ajouté une étape d'impression pour l'exemple. - Configuré les jobs
job_install,job_eslint,job_buildetjob_deploycomme précédemment. - Ajouté une dépendance (
needs) entre le jobjob_deployet le jobjob_build. Cela signifie que le jobjob_deployne sera exécuté que lorsque le jobjob_buildsera terminé avec succès.
N'oubliez pas d'adapter cette configuration en fonction de vos besoins spécifiques, tels que les commandes de build, les scripts de déploiement, etc. Vous pouvez également ajouter d'autres jobs, étapes et dépendances selon vos exigences.
Assurez-vous de consulter la documentation officielle de GitLab CI/CD (opens in a new tab) pour en savoir plus sur les fonctionnalités avancées, les variables d'environnement, les déploiements spécifiques, et bien plus encore.
Conclusion
Dans ce cours, nous avons exploré l'intégration continue (CI) et le déploiement continu (CD) avec GitLab CI/CD en utilisant le fichier .gitlab-ci.yml. Nous avons configuré des jobs pour installer les dépendances, exécuter des linters, construire l'application et déployer le code. Cela permet d'automatiser le processus de développement, de réduire les erreurs et d'améliorer l'efficacité de votre workflow de développement. Continuez à explorer la documentation de GitLab CI/CD pour en apprendre davantage sur les fonctionnalités avancées et les bonnes pratiques pour l'intégration et le déploiement continus dans vos projets React et JavaScript.