Service en ligne 100% Gratuit Utilitaires Web AngularForAll

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

Gitlab Ci Gitlab Pipeline Ci Cd Devops Yaml Docker Deploiement Continu

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.

🦊

Générateur de pipeline GitLab CI

📋 Projet

🏗️ Runtime

📦 Stages

💾 Cache & Artifacts

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

                                        
                                    

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

Questions fréquentes

Selectionnez votre langage ou framework (Node.js, Angular, Docker, Python, PHP, Java), choisissez les stages souhaites (build, test, lint, deploy) et configurez vos options (branche cible, runner, variables). L'outil genere un fichier .gitlab-ci.yml valide et documente, pret a placer a la racine de votre depot.

Les stages disponibles incluent : install (installation des dependances), lint (verification du code), test (tests unitaires et e2e), build (compilation et bundling), dockerize (construction de l'image Docker), et deploy (deploiement vers staging ou production via SSH, Kubernetes ou registry).

Le generateur peut creer un stage deploy utilisant SSH (rsync ou scp) vers votre serveur, ou un push vers un registry Docker (GitLab Registry, Docker Hub). Vous devez configurer les variables secretes CI/CD dans les settings GitLab (SSH_PRIVATE_KEY, SERVER_HOST, etc.) pour securiser vos credentials.

Oui, les pipelines generes utilisent des images Docker standards (node:18-alpine, python:3.11, php:8.2-cli) compatibles avec les runners GitLab.com partages. Pour les runners self-hosted, vous pouvez adapter l'image Docker ou utiliser le tag shell dans la configuration de votre runner.

Partager