Aller au contenu

Validateur GitLab CI · CI/CD

Valider gitlab-ci.yml en ligne, avant le runner.

Ce linter GitLab CI vous permet de valider .gitlab-ci.yml en ligne : collez votre pipeline et obtenez ses erreurs YAML ainsi que les mauvaises configurations structurelles que GitLab rejetterait — stages non déclarés, jobs sans script, needs/extends cassés. Instantanément, dans votre navigateur. Sans installation, sans inscription.

S’exécute dans votre navigateur — rien de ce que vous collez ne quitte cette page. Comment nous le prouvons

S’exécute dans votre navigateur Sans inscription Axé structure Mis à jour le 29 juil. 2026

Valider gitlab-ci.yml en ligne — espace d’essai du linter GitLab CI

.gitlab-ci.yml

Runs entirely in your browser — nothing is uploaded.

Tip: press Esc to release keyboard focus from the editor.

Results

Load an example or paste a pipeline, then validate to see YAML errors and pipeline checks here.

La faille

Un YAML valide ne fait que la moitié du travail.

Un .gitlab-ci.yml peut s’analyser comme un YAML parfaitement valide tout en restant un pipeline cassé. Les erreurs qui font réellement échouer une exécution sont structurelles : un job pointant vers un stage que vous n’avez jamais déclaré, un job sans script, une entrée needs nommant un job qui n’existe pas, ou un extends sur un template que vous avez renommé.

L’éditeur de pipeline et CI Lint de GitLab détectent ces erreurs — mais seulement après que vous avez poussé vers un projet et que vous vous êtes connecté. Ce validateur exécute les mêmes contrôles structurels à fort signal avant que vous ne validiez, entièrement dans votre navigateur, par rapport à la référence des mots-clés .gitlab-ci.yml de GitLab.

Il vérifie les deux — le YAML et la structure du pipeline — afin que vous puissiez valider un pipeline GitLab avant de le pousser, sans rien à installer et sans rien à envoyer.

Voir la liste complète dans les contrôles de pipeline, ou essayez l’espace d’essai en direct ci-dessus.

Le pipeline

Comment ça marche.

Cinq étapes déterministes s’exécutent de bout en bout à chaque validation — entièrement dans votre onglet de navigateur, à chaque fois.

  1. Analyser le YAML.

    Votre .gitlab-ci.yml est analysé avec un lecteur YAML — les erreurs de syntaxe, les mauvaises indentations et les problèmes structurels sont signalés avec la ligne qui a échoué.

  2. Découper la configuration.

    Le niveau supérieur est découpé en mots-clés globaux (stages, default, variables…), jobs visibles et .templates masqués, afin que l’analyseur sache ce qui est un job et ce qui est de la configuration.

  3. Résoudre les stages.

    La liste stages: déclarée (ou les cinq valeurs par défaut : .pre, build, test, deploy, .post) devient l’ensemble par rapport auquel le stage de chaque job est vérifié.

  4. Vérifier chaque job.

    Chaque job est validé pour une surface exécutable, un stage connu, des cibles needs / extends / dependencies réelles, un when valide, un rules en forme de liste, et des formes image / services cohérentes.

  5. Classer par gravité.

    Les résultats sont notés en erreur, avertissement ou info — les erreurs qui cassent le pipeline remontent en tête, devant les notes consultatives comme l’ancien only/except, chacune assortie d’une correction concrète.

Contrôles de pipeline

Les 4 contrôles qui comptent.

Au-delà de la validité du YAML, l’analyseur recherche les mauvaises configurations qui font échouer un pipeline avant qu’un seul job ne s’exécute. Chacune ci-dessous montre le motif cassé et la correction.

Stage non déclaré dans stages:

Gravité élevée

Un job dont le stage: n’est pas dans votre liste stages: (ou l’un des stages par défaut .pre, build, test, deploy, .post) est une erreur de configuration — GitLab ne sait pas quand l’exécuter et refuse le pipeline.

Cassé

.gitlab-ci.yml
# BROKEN — "release" is not a declared stage
stages:
  - build
  - test

release-job:
  stage: release       # not in stages:
  script:
    - make release

Corrigé

.gitlab-ci.yml
# FIXED — every stage used is declared
stages:
  - build
  - test
  - release

release-job:
  stage: release
  script:
    - make release

Job sans script / trigger / extends

Gravité élevée

Un job visible doit faire quelque chose : exécuter des commandes (script:/run:), démarrer un pipeline en aval (trigger:), ou en hériter d’un autre job (extends:). Un job qui n’a aucun de ces éléments est rejeté par GitLab.

Cassé

job
# BROKEN — this job does nothing
build-job:
  stage: build
  # no script, run, trigger, or extends

Corrigé

job
# FIXED — give the job a script
build-job:
  stage: build
  script:
    - make build

needs / extends pointant vers un job manquant

Gravité moyenne

Chaque entrée de needs:, dependencies: ou extends: doit référencer un job ou un .template masqué qui existe réellement dans le fichier. Une référence vers un job manquant casse le graphe du pipeline.

Cassé

.gitlab-ci.yml
# BROKEN — "compile" and ".base" never exist
test:
  stage: test
  needs:
    - compile          # no such job
  extends: .base       # no such template
  script:
    - make test

Corrigé

.gitlab-ci.yml
# FIXED — references resolve to real definitions
.base:
  image: golang:1.22

compile:
  stage: build
  extends: .base
  script: make

test:
  stage: test
  needs:
    - compile
  extends: .base
  script: make test

when: invalide / rules: hors liste

Gravité moyenne

when: n’accepte que on_success, on_failure, always, manual, delayed ou never. rules: doit être une liste YAML d’objets de règle — un mapping ou une faute de frappe ici modifie (ou casse) le moment où un job s’exécute.

Cassé

job
# BROKEN — bad when value, rules is a mapping
deploy:
  stage: deploy
  when: sometimes      # not allowed
  rules:
    if: '$CI_COMMIT_TAG'   # rules must be a list
  script: ./deploy.sh

Corrigé

job
# FIXED — valid when, rules as a list
deploy:
  stage: deploy
  rules:
    - if: '$CI_COMMIT_TAG'
      when: manual
  script: ./deploy.sh

Les stages, les rules et les dépendances entre jobs sont tous documentés dans la référence des stages et la référence des rules de GitLab. Les contrôles de l’ancien only/except et des formes image/services fonctionnent aussi dès aujourd’hui.

Étape suivante

Vous utilisez aussi GitHub Actions ? Validez ces workflows.

De nombreuses équipes exécutent des pipelines sur les deux plateformes. Une fois votre .gitlab-ci.yml propre, le GitHub Actions Validator trouve les erreurs YAML et les failles de sécurité dans vos workflows, et le GitHub Actions Expression Tester évalue les expressions ${{ … }} avant de pousser — le tout entièrement dans votre navigateur.

.gitlab-ci.yml
stages: [build, test]

build:
  stage: build
  script: make

test:
  stage: test
  needs: [build]   # ✓ resolves
  script: make test

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

Collez votre .gitlab-ci.yml dans ce validateur GitLab CI YAML et il l’analyse instantanément. Il fait deux choses à la fois. D’abord, il signale les erreurs de syntaxe YAML, les mauvaises indentations et les erreurs structurelles, avec la ligne qui a échoué. Ensuite, il exécute des contrôles de mauvaise configuration de pipeline qui correspondent à la façon dont GitLab lui-même valide une configuration : un job sans script / run / trigger / extends, un job dont le stage n’est pas dans votre liste stages, des références needs et extends pointant vers des jobs qui n’existent pas, une valeur when invalide, un bloc rules qui n’est pas une liste, l’ancien only/except, et des formes image/services incorrectes. Vous obtenez les erreurs YAML et les erreurs de pipeline en une seule passe.

Oui. Vous pouvez vérifier un pipeline GitLab sans projet, sans connexion et sans runner : ce linter GitLab CI s’exécute à 100 % côté client. Votre .gitlab-ci.yml est analysé à l’intérieur de votre onglet de navigateur — rien n’est envoyé à un serveur, et il n’y a ni compte ni inscription. Vous pouvez coller en toute sécurité des pipelines internes ou propriétaires, y compris ceux contenant des étiquettes de runner privées, des noms d’image internes et des références à des variables secrètes.

Ce message signifie que GitLab a refusé votre configuration, soit pour une erreur de syntaxe YAML, soit pour une mauvaise configuration structurelle du pipeline. Les causes les plus fréquentes : un job dont le stage n’est pas déclaré dans stages:, un job sans script / run / trigger / extends, une référence needs ou extends vers un job qui n’existe pas, une valeur when invalide, ou un bloc rules: qui n’est pas écrit comme une liste. Ce validateur reproduit ces mêmes contrôles pour vous aider à vérifier les erreurs de .gitlab-ci.yml et à trouver la ligne fautive avant de pousser.

Collez le YAML du pipeline dans ce validateur basé sur le navigateur pour vérifier les erreurs de .gitlab-ci.yml avant de valider — aucune installation ni aucun push nécessaires. L’outil exécute l’ensemble complet des contrôles (structure YAML plus mauvaises configurations de pipeline) entièrement dans votre navigateur, vous obtenez donc un retour instantané sur les erreurs de syntaxe, les stages non déclarés, les jobs sans script, les needs/extends cassés et les valeurs when invalides avant que la configuration n’atteigne un runner GitLab.

Oui — c’est exactement ce que propose cet outil. C’est un validateur GitLab CI YAML gratuit qui fonctionne en ligne, dans le navigateur, sans compte, sans inscription et sans connexion. L’éditeur de pipeline et CI Lint de GitLab sont excellents et font autorité — ils résolvent les includes, les variables de projet et le schéma en direct, et vous devriez les utiliser avant de fusionner — mais ils nécessitent un projet GitLab, une connexion et un aller-retour avec le serveur. Ici, vous obtenez un retour instantané et hors ligne sur les erreurs structurelles à fort signal pendant que vous êtes encore en train d’éditer. Considérez un résultat propre ici comme une forte confiance avant le push, puis confirmez avec CI Lint.

Au-delà de la validité du YAML, le validateur exécute une série de contrôles structurels. Un job visible doit faire quelque chose : exécuter des commandes avec script: (ou le plus récent run:), démarrer un pipeline en aval avec trigger:, ou hériter de l’un de ceux-ci via extends:. Il résout ensuite vos stages — la liste stages: déclarée, ou les cinq valeurs par défaut .pre, build, test, deploy et .post — et vérifie le stage de chaque job par rapport à cet ensemble. Il contrôle aussi que les références needs, dependencies et extends pointent vers des jobs réels, que when: vaut on_success, on_failure, always, manual, delayed ou never, que rules: est bien une liste, et il signale l’ancien only/except à titre informatif.

Cette erreur YAML signale presque toujours un problème d’indentation ou un deux-points mal placé : une clé enfant alignée au même niveau que sa clé parente, un onglet de tabulation au lieu d’espaces, ou un tiret de liste manquant. Le lecteur YAML s’attendait à trouver une clé là où il a rencontré autre chose. Le validateur vous donne la ligne exacte qui a échoué afin que vous puissiez réaligner l’indentation. Réindentez avec deux espaces de manière cohérente, n’utilisez jamais de tabulations, et collez à nouveau pour confirmer que l’erreur a disparu.

GitLab rejette un job visible qui ne définit aucune action exécutable. Un job ordinaire exécute des commandes avec script: (ou run:), un job de type bridge démarre un pipeline en aval avec trigger:, et un job peut hériter de l’un de ceux-ci depuis un autre job ou un template masqué via extends:. Un job visible qui n’en définit aucun est rejeté avec une erreur du type « job config should implement a script: or a trigger: keyword ». Le validateur signale tout job visible auquel manquent ces quatre éléments. Les templates masqués (clés commençant par un point) sont autorisés à être des fragments partiels ; ils ne sont donc pas tenus d’avoir un script.

More free, private DevOps tools.

Le validateur CI GitLab est l’un des outils de OpsCanopy — une canopée grandissante de validateurs, de convertisseurs et de testeurs basés sur le navigateur qui ne touchent jamais à un serveur.

Vous débutez avec Docker ?  Lire le guide Docker →

39 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Outils connexes : le GitHub Actions Validator et le GitHub Actions Expression Tester. Parcourez le répertoire complet des outils.

Non affilié à GitLab B.V., ni approuvé ou sponsorisé par celle-ci. GitLab est une marque de GitLab B.V., utilisée ici uniquement à titre descriptif pour identifier le format de pipeline .gitlab-ci.yml que cet outil vérifie.