Générateur pipeline GitLab CI (.gitlab-ci.yml)

🏷️ Outils en ligne 100% Gratuit
Gitlab Ci Gitlab Pipeline Ci Cd Devops Yaml Docker Déploiement Continu
🦊

Générateur de pipeline GitLab CI

📋 Projet

🏗️ Runtime

📦 Stages

💾 Cache & Artifacts

Réutilisé entre les pipelines
Partagés entre stages
.gitlab-ci.yml

                                        
                                    

Générez un fichier .gitlab-ci.yml complet avec stages, cache, artifacts, Docker Registry et déploiement SSH/S3/Kubernetes. Supporte Node.js, Python, PHP, Go et Java.

GitLab CI : principes

GitLab CI/CD est le système d'intégration et de déploiement continu intégré à GitLab. Il se configure via un fichier .gitlab-ci.yml à la racine du dépôt.

ConceptDescription
PipelineEnsemble de stages déclenchés par un push ou MR
StageGroupe de jobs qui s'exécutent en parallèle
JobUnité d'exécution — script + image Docker
RunnerAgent d'exécution (partagé GitLab ou privé)
ArtifactFichier produit par un job, partagé entre stages
CacheFichiers mis en cache entre les pipelines

Structure du .gitlab-ci.yml

# Définir les stages dans l'ordre d'exécution
stages:
  - install
  - test
  - build
  - deploy

# Image Docker par défaut pour tous les jobs
default:
  image: node:20-alpine

# Variables globales
variables:
  NODE_ENV: "production"

# Template réutilisable
.base-rules: &base-rules
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

Stages et jobs

install:dependencies:
  stage: install
  script:
    - npm ci
  cache:
    key: $CI_COMMIT_REF_SLUG
    paths:
      - node_modules/
    policy: push

test:unit:
  stage: test
  script:
    - npm test
  cache:
    key: $CI_COMMIT_REF_SLUG
    paths:
      - node_modules/
    policy: pull  # ne met pas à jour le cache

build:app:
  stage: build
  script:
    - npm run build
  artifacts:
    paths:
      - dist/
    expire_in: 1 hour

Cache et artifacts

FonctionnalitéCacheArtifacts
ObjectifAccélérer les pipelines (node_modules…)Passer des fichiers entre jobs
PersistanceEntre pipelines (key)Dans le pipeline courant
Usage typiqueDépendancesdist/, coverage/, .jar
ExpirationConfigurableexpire_in: 1 hour
Astuce : utilisez policy: pull dans les jobs qui ne modifient pas le cache — cela évite de le re-uploader inutilement.

Variables CI/CD

Définissez vos secrets dans Settings → CI/CD → Variables. GitLab masque automatiquement les variables marquées "Masked" dans les logs.

Variable prédéfinieDescription
$CI_COMMIT_REF_SLUGBranche normalisée (tirets)
$CI_COMMIT_SHAHash du commit
$CI_REGISTRYURL du registre GitLab
$CI_REGISTRY_IMAGEImage du projet courant
$CI_REGISTRY_USERUtilisateur pour login registry
$CI_REGISTRY_PASSWORDToken d'accès registry
$CI_PROJECT_NAMENom du projet GitLab
$CI_ENVIRONMENT_NAMENom de l'environnement déployé

Bonnes pratiques

  • Utiliser des templates YAML (& et *) pour éviter la duplication
  • Séparer les policies du cache : push dans le job d'install, pull ailleurs
  • Utiliser rules: à la place de only:/except: (déprécié)
  • Épingler les versions des images Docker : node:20-alpine, pas node:latest
  • Activer le déploiement manuel en production avec when: manual
  • Définir des environnements (environment: name: production) pour le suivi des déploiements
  • Utiliser interruptible: true sur les jobs CI pour libérer les runners lors d'un force push