Validez votre GitLab CI YAML sans erreur avant chaque push
⚡ Travaillez plus vite : YAMLforge Pro supprime la limite de 10/jour - convertissez autant de fichiers que nécessaire.
Vous poussez votre code, attendez que le pipeline démarre, et... échec immédiat. Erreur de syntaxe à la ligne 42. Encore. Ce sont quinze minutes que vous ne récupérerez jamais.
→ Article connexe : Validez vos manifests Kubernetes sans erreur de déploiement
C'est YF-kun 🤖 — Je serai votre compagnon dans cet article ! Le YAML et le JSON, c'est un peu ma passion. Je vais intervenir quand il y a quelque chose d'important à signaler... ou juste quand je ne peux pas m'empêcher de partager un truc cool.
😅 YF-kun: Le debug de config à 2h du mat', on connaît tous ça...
😅 YF-kun: J'ai passé deux heures à déboguer un pipeline pour découvrir que j'avais utilisé des tabulations au lieu d'espaces. Le message d'erreur ? Complètement inutile. Le YAML est pointilleux comme ça.
Qu'est-ce que la validation GitLab CI YAML ?
GitLab CI utilise un fichier .gitlab-ci.yml pour définir votre pipeline : quels jobs s'exécutent, dans quel ordre, et sous quelles conditions. Ce fichier YAML contrôle tout, des tests à exécuter jusqu'au déploiement en production.
La validation vérifie si votre syntaxe YAML est correcte et respecte les règles du schéma spécifique de GitLab. Vous pouvez détecter des erreurs comme des clés manquantes, une mauvaise indentation, des noms de jobs invalides, ou des définitions de stages incorrectes avant qu'elles ne cassent votre véritable pipeline.
Considérez cela comme un correcteur orthographique pour votre configuration CI. Ça ne vous dira pas si votre logique est correcte, mais ça vous signalera définitivement si vous avez oublié un deux-points ou mal indenté quelque chose.
🤔 YF-kun: Le parseur YAML de GitLab est vraiment strict. Certaines choses qui fonctionnent en YAML standard ne passent pas dans une config CI. Par exemple, vous ne pouvez pas utiliser d'ancres entre différents fichiers avec include. J'ai appris ça à mes dépens.
Comment valider votre GitLab CI YAML
🔓 Accès illimité : Pro supprime la limite quotidienne - convertissez autant de fichiers YAML que nécessaire.
Méthode 1 : L'outil CI Lint intégré à GitLab
GitLab fournit un outil de validation dédié à l'adresse https://gitlab.com/[votre-projet]/-/ci/lint. Vous pouvez y accéder depuis les paramètres CI/CD de votre projet.
Étapes :
- Naviguez vers votre projet GitLab
- Allez dans CI/CD → Éditeur ou CI/CD → Pipelines → CI Lint
- Collez le contenu de votre YAML
- Cliquez sur Valider
L'outil vous montrera :
- ✅ Les erreurs de syntaxe avec les numéros de ligne
- ✅ La configuration étendue (avec les includes résolus)
- ✅ À quoi ressembleront vos stages et jobs de pipeline
💡 YF-kun: L'outil CI Lint simule réellement toute votre configuration. Il résout tous vosextends, instructionsinclude, et substitutions de variables. Super utile quand vous travaillez avec des configurations multi-fichiers complexes.
Méthode 2 : Utiliser l'API GitLab
Pour l'automatisation ou la validation locale, vous pouvez interroger directement l'API de GitLab :
curl --header "Content-Type: application/json" \
--header "PRIVATE-TOKEN: votre_token" \
--data '{"content": "votre-yaml-ici"}' \
"https://gitlab.com/api/v4/ci/lint"
Cela renvoie du JSON avec le statut de validation et toutes les erreurs détectées.
🚀 YF-kun: Vous pouvez intégrer ça dans des hooks pre-commit. Validez localement avant de pousser, et vous ne casserez plus jamais le pipeline pour vos collègues. Ils vous adoreront.
Méthode 3 : Utiliser YAMLforge pour des vérifications rapides de syntaxe
Alors que les outils de GitLab vérifient les règles spécifiques à GitLab, parfois vous avez juste besoin de savoir si votre syntaxe YAML est valide tout court. YAMLforge peut vous aider avec ça :
💡 Besoin de plus de 10 conversions par jour ? Les utilisateurs Pro ont un accès illimité.
# Exemple .gitlab-ci.yml
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the app"
- npm install
- npm run build
artifacts:
paths:
- dist/
test_job:
stage: test
script:
- npm test
coverage: '/Coverage: \d+\.\d+%/'
deploy_job:
stage: deploy
script:
- ./deploy.sh
only:
- main
Convertissez en JSON avec YAMLforge pour repérer les problèmes structurels :
{
"stages": [
"build",
"test",
"deploy"
],
"build_job": {
"stage": "build",
"script": [
"echo \"Building the app\"",
"npm install",
"npm run build"
],
"artifacts": {
"paths": [
"dist/"
]
}
},
"test_job": {
"stage": "test",
"script": [
"npm test"
],
"coverage": "/Coverage: \\d+\\.\\d+%/"
},
"deploy_job": {
"stage": "deploy",
"script": [
"./deploy.sh"
],
"only": [
"main"
]
}
}
🎯 YF-kun: Si YAMLforge ne peut pas parser votre YAML en JSON valide, GitLab ne pourra définitivement pas l'utiliser. C'est une vérification rapide avant même d'utiliser l'outil CI Lint.
Erreurs courantes dans GitLab CI YAML
1. Erreurs d'indentation
Le YAML est sensible aux espaces. Mélangez votre indentation et tout casse :
# ❌ Incorrect - indentation incohérente
build_job:
stage: build
script:
- echo "Hello" # Seulement 1 espace au lieu de 2
- npm install # 4 espaces - incohérent !
# ✅ Correct - indentation cohérente de 2 espaces
build_job:
stage: build
script:
- echo "Hello"
- npm install
⚠️ YF-kun: Utilisez des espaces, jamais de tabulations. La plupart des éditeurs vous permettent de configurer ça. L'extension YAML de VS Code vous engueulera si vous vous plantez. Croyez-moi, activez-la.
2. Le problème Norvège dans les configs CI
Rappelez-vous, le YAML interprète certaines chaînes comme des booléens :
# ❌ Ça casse de manière inattendue
variables:
DEPLOY_TO: NO # Devient false !
ENABLE_CACHE: YES # Devient true !
DEBUG_MODE: OFF # Devient aussi false !
GitLab lira ces valeurs comme des booléens, pas des chaînes. Votre script de déploiement qui attend "NO" comme chaîne recevra false à la place.
# ✅ Mettez-les entre guillemets pour les préserver comme chaînes
variables:
DEPLOY_TO: "NO"
ENABLE_CACHE: "YES"
DEBUG_MODE: "OFF"
😅 YF-kun: Le problème Norvège frappe encore. J'ai déployé dans le mauvais environnement une fois parce que quelqu'un avait mis PRODUCTION: NO sans guillemets. Le script de déploiement l'a lu comme false (ce qui est truthy en bash), et... ouais. La production a reçu le build de dev. Moments inoubliables.
3. Références de stage invalides
# ❌ Le job fait référence à un stage qui n'existe pas
stages:
- build
- test
deploy_job:
stage: deploy # Erreur ! Le stage 'deploy' n'est pas défini
script:
- ./deploy.sh
# ✅ Tous les stages doivent être déclarés d'abord
stages:
- build
- test
- deploy # Maintenant c'est défini
deploy_job:
stage: deploy
script:
- ./deploy.sh
4. Syntaxe incorrecte de only et except
# ❌ Incorrect - only attend un tableau
deploy_job:
stage: deploy
only: main # Ça ne fonctionnera pas
script:
- ./deploy.sh
# ✅ Correct - utilisez la syntaxe de tableau
deploy_job:
stage: deploy
only:
- main # Format de tableau approprié
script:
- ./deploy.sh
Ou encore mieux, utilisez la syntaxe plus récente rules :
→ Voir aussi : Convertir YAML en JSON en 3 secondes (outil gratuit )
# ✅ Approche moderne avec rules
deploy_job:
stage: deploy
script:
- ./deploy.sh
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
💡 YF-kun: GitLab s'éloigne deonlyetexceptpour privilégierrules. C'est plus puissant et bien plus lisible. Vous pouvez combiner des conditions avec&&et||, vérifier des variables, des modifications de fichiers, toutes sortes de trucs.
Techniques de validation avancées
Hooks pre-commit avec gitlab-ci-lint
Installez l'outil CLI gitlab-ci-lint :
npm install -g gitlab-ci-lint
Créez un script .git/hooks/pre-commit :
#!/bin/bash
if [ -f .gitlab-ci.yml ]; then
echo "Validation de .gitlab-ci.yml..."
gitlab-ci-lint .gitlab-ci.yml
if [ $? -ne 0 ]; then
echo "❌ Échec de la validation GitLab CI. Corrigez les erreurs avant de commiter."
exit 1
fi
echo "✅ Validation GitLab CI réussie"
fi
Maintenant vous ne pouvez plus commiter de configs cassées même si vous le vouliez.
Validation du schéma dans votre éditeur
La plupart des éditeurs modernes supportent la validation de schéma YAML. Pour VS Code, installez l'extension "YAML" de Red Hat, puis ajoutez à vos paramètres :
{
"yaml.schemas": {
"https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json": ".gitlab-ci.yml"
}
}
Vous obtiendrez une validation en temps réel, de l'autocomplétion, et de la documentation inline pendant que vous tapez.
🚀 YF-kun: Ça a changé ma vie. L'autocomplétion pour les mots-clés GitLab CI ? La documentation au survol pour les propriétés de jobs ? Carrément. Vous attrapez 90% des erreurs avant même de sauvegarder le fichier.
Considérations de confidentialité et de sécurité
Lorsque vous validez des configs CI, gardez la sécurité à l'esprit :
- Ne collez jamais de données sensibles dans des outils de validation publics
- Supprimez les secrets avant validation (utilisez des valeurs de substitution)
- Utilisez les outils intégrés de GitLab pour les configs avec des informations privées
- YAMLforge traite localement - vos données ne quittent jamais votre navigateur
🎯 YF-kun: Sérieusement, ne collez pas vos clés API de production dans des validateurs en ligne aléatoires. J'ai vu ça arriver. Utilisez les propres outils de GitLab pour tout ce qui est sensible, ou utilisez YAMLforge puisque c'est entièrement côté client. Vos secrets restent secrets.
Comparaison : GitLab CI Lint vs. validateurs YAML génériques
| Fonctionnalité | GitLab CI Lint | YAMLforge | Validateur YAML générique |
|---|---|---|---|
| Vérification syntaxe YAML | ✓ | ✓ | ✓ |
| Validation schéma GitLab | ✓ | ✗ | ✗ |
Résout les include | ✓ | ✗ | ✗ |
| Étend les variables | ✓ | ✗ | ✗ |
| Traitement côté client | ✗ | ✓ | Variable |
| Fonctionne hors ligne | ✗ | ✓ | ✗ |
| Détection problème Norvège | ✗ | ✓ | ✗ |
| Idéal pour | Validation finale | Vérifs syntaxe | Parsing basique |
Utilisez CI Lint de GitLab pour une validation complète. Utilisez YAMLforge pour des vérifications rapides de syntaxe et des configs sensibles. Utilisez les deux pour le meilleur workflow.
🎉 YF-kun: Voilà, vous avez tout ce qu'il faut. À vous de jouer !
Questions fréquemment posées
Comment valider mon fichier GitLab CI YAML ?
Utilisez l'outil CI Lint intégré de GitLab à l'adresse https://gitlab.com/[votre-projet]/-/ci/lint. Collez votre YAML et cliquez sur Valider. Il vérifie à la fois la syntaxe et les règles du schéma spécifique à GitLab.
Puis-je valider mon GitLab CI YAML hors ligne ?
Oui. Installez le package npm gitlab-ci-lint pour une validation locale, ou utilisez des plugins d'éditeur comme l'extension YAML de VS Code avec le schéma de GitLab pour une validation en temps réel pendant que vous codez.
Quelle est la différence entre la validation YAML et la validation GitLab CI ?
La validation YAML vérifie si votre syntaxe est correcte (indentation, deux-points, tirets). La validation GitLab CI vérifie aussi si vous respectez le schéma de GitLab : noms de jobs valides, références de stages, syntaxe rules appropriée, etc.
Pourquoi mon YAML valide échoue-t-il dans GitLab CI ?
GitLab a des exigences spécifiques au-delà de la syntaxe YAML basique. Problèmes courants : stages non définis, mots-clés de job invalides, tableaux only/except incorrects, ou utilisation de fonctionnalités YAML non supportées comme les ancres entre fichiers inclus.
Est-il sûr de coller ma config CI dans des validateurs en ligne ?
Pour les configs sans secrets, oui. Mais supprimez d'abord tous les tokens sensibles, mots de passe ou clés API. Mieux encore, utilisez les propres outils de GitLab ou des validateurs côté client comme YAMLforge qui n'envoient jamais vos données à un serveur.
→ En savoir plus : Corriger les erreurs de syntaxe YAML : guide du développeur
Qu'est-ce que le problème Norvège dans GitLab CI ?
Le YAML convertit NO, YES, ON et OFF en booléens sauf s'ils sont entre guillemets. Dans les configs CI, cela peut casser les variables d'environnement ou la logique conditionnelle. Mettez toujours ces valeurs entre guillemets : DEPLOY: "NO" au lieu de DEPLOY: NO.
Commencez à valider intelligemment dès aujourd'hui
Vous savez maintenant comment valider les fichiers GitLab CI YAML comme un pro :
- ✅ Utilisez l'outil CI Lint de GitLab pour des vérifications complètes
- ✅ Attrapez les erreurs de syntaxe tôt avec la validation locale
- ✅ Évitez les erreurs courantes comme le problème Norvège
- ✅ Configurez des hooks pre-commit pour prévenir les configs cassées
- ✅ Utilisez des schémas d'éditeur pour une validation en temps réel
🎉 YF-kun: Vous voilà paré ! Plus de pipelines cassés à cause d'erreurs de syntaxe bêtes. Et si vous avez besoin de vérifier rapidement la syntaxe YAML ou de convertir des formats, YAMLforge est là pour vous — totalement gratuit , sans inscription. Maintenant allez construire des pipelines fiables !
Besoin de conversions illimitées ? Essayez YAMLforge Pro - accès illimité, API, support prioritaire et fonctionnalités d'équipe. 9€/mois avec garantie de remboursement de 30 jours.
Articles connexes
- Validez vos manifests Kubernetes sans erreur de déploiement - Lire la suite → Vous en avez assez des erreurs YAML qui bloquent vos déploiements Kubernetes ? Découvrez comment val...
- Convertir YAML en JSON en 3 secondes (outil gratuit ) - Lire la suite → Besoin de convertir du YAML en JSON sans perdre vos types de données ? YAMLforge traite vos fichiers...
- Corriger les erreurs de syntaxe YAML : guide du développeur - Lire la suite → Votre pipeline CI/CD échoue à cause d'une erreur YAML ? Découvrez comment identifier et corriger rap...
YAMLforge Team
Équipe de contenu technique
L'équipe YAMLforge aide passionnément les développeurs à créer de meilleurs logiciels.
Essayer YAMLforge gratuitement
Convertissez YAML en JSON instantanément avec notre outil gratuit.
Essayer YAMLforge gratuitementArticles connexes
Convertir YAML en JSON en 3 secondes (outil gratuit )
Besoin de convertir du YAML en JSON sans perdre vos types de données ? YAMLforge traite vos fichiers directement dans votre navigateur, sans téléchargement ni extension.
Validez vos manifests Kubernetes sans erreur de déploiement
Vous en avez assez des erreurs YAML qui bloquent vos déploiements Kubernetes ? Découvrez comment valider vos manifests efficacement et éviter les bugs d'indentation. Gratuit et sécurisé.
Corriger les erreurs de syntaxe YAML : guide du développeur
Votre pipeline CI/CD échoue à cause d'une erreur YAML ? Découvrez comment identifier et corriger rapidement les problèmes de syntaxe les plus courants. Validation instantanée et gratuit e.