
Votre job a échoué avec un message cryptique dans les logs ? Ce guide vous apprend à lire les logs GitLab CI/CD efficacement et à identifier rapidement la cause des erreurs.
Structure des logs
Section intitulée « Structure des logs »Un job GitLab CI/CD s’exécute en plusieurs phases :
Chaque section est pliable dans l’interface. Cliquez sur une section pour voir son contenu.
Lire les logs : méthode rapide
Section intitulée « Lire les logs : méthode rapide »-
Ouvrir le job en échec
Build > Jobs → Cliquez sur le job rouge
-
Aller à la fin des logs
Scrollez en bas ou cliquez sur le bouton “Scroll to bottom”
-
Trouver la dernière commande exécutée
Juste avant
Job failedse trouve la commande qui a échoué. -
Lire le message d’erreur
Remontez quelques lignes pour voir le message d’erreur complet.
Erreurs courantes et solutions
Section intitulée « Erreurs courantes et solutions »1. Commande non trouvée
Section intitulée « 1. Commande non trouvée »$ npm run buildbash: npm: command not foundCause : L’outil n’est pas installé dans l’image Docker.
Solutions :
- Utiliser une image qui contient l’outil :
image: node:18 - Installer dans
before_script:apt-get install -y nodejs npm
2. Fichier non trouvé
Section intitulée « 2. Fichier non trouvé »$ cat config.jsoncat: config.json: No such file or directoryCause : Le fichier n’existe pas ou mauvais chemin.
Solutions :
- Vérifier le chemin (absolu vs relatif)
- Ajouter
ls -laavant pour lister les fichiers - Vérifier que les artefacts sont bien téléchargés
3. Permission denied
Section intitulée « 3. Permission denied »$ ./deploy.shbash: ./deploy.sh: Permission deniedCause : Le script n’est pas exécutable.
Solution :
before_script: - chmod +x deploy.sh4. Tests échoués
Section intitulée « 4. Tests échoués »FAIL src/utils.test.js✕ should return correct value (5 ms)
Test Suites: 1 failedCause : Le code ne passe pas les tests.
Solution : Corriger le code ou les tests !
5. Code de sortie non nul
Section intitulée « 5. Code de sortie non nul »$ some_commandERROR: Something went wrongJob failed: exit code 1Cause : La commande a retourné un code d’erreur.
Diagnostic : Lire le message ERROR au-dessus.
Mode debug : CI_DEBUG_TRACE
Section intitulée « Mode debug : CI_DEBUG_TRACE »Pour voir toutes les commandes exécutées avec leurs valeurs :
variables: CI_DEBUG_TRACE: "true"
job: script: - echo $MY_SECRET # Affichera la valeur !Activer temporairement (sans modifier le fichier) :
- Build > Pipelines > Run pipeline
- Ajoutez la variable
CI_DEBUG_TRACE=true - Lancez le pipeline
Ajouter vos propres logs de debug
Section intitulée « Ajouter vos propres logs de debug »build: script: # Afficher les variables d'environnement - echo "Branch: $CI_COMMIT_BRANCH" - echo "Source: $CI_PIPELINE_SOURCE"
# Lister les fichiers - ls -la - pwd
# Afficher le contenu d'un fichier - cat package.json
# Votre commande - npm run buildContinuer malgré une erreur
Section intitulée « Continuer malgré une erreur »Par défaut, le runner arrête le job à la première commande qui échoue (code de sortie ≠ 0). Pour continuer malgré une erreur :
job: script: - command_that_may_fail || true # Continue même si erreur - another_commandPour marquer un job comme “non bloquant” pour le pipeline :
job: allow_failure: true script: - risky_commandTélécharger les logs complets
Section intitulée « Télécharger les logs complets »Pour analyser offline ou partager :
- Dans la page du job, bouton Download (à droite des logs)
- Ou via API :
# Remplacez par l'URL de votre instance GitLab# Le token doit avoir les droits read_api sur le projetcurl --header "PRIVATE-TOKEN: $TOKEN" \ "https://gitlab.example.com/api/v4/projects/$PROJECT_ID/jobs/$JOB_ID/trace" \ > job.logLogs des sections après échec
Section intitulée « Logs des sections après échec »Même si le job échoue ou est annulé, after_script s’exécute. Utilisez-le pour collecter des infos :
job: script: - npm test after_script: # S'exécute même si npm test échoue ou si le job est annulé - echo "Job status: $CI_JOB_STATUS" # success, failed, ou canceled - echo "Collecting debug info..." - cat npm-debug.log || true - ls -la node_modules/ || trueChercher dans les logs
Section intitulée « Chercher dans les logs »Dans l’interface GitLab :
Ctrl+F(ouCmd+F) pour chercher dans la page- Cherchez :
error,failed,not found,denied
En ligne de commande après téléchargement :
# Trouver les erreursgrep -i "error\|failed\|denied" job.log
# Avec contexte (5 lignes avant/après)grep -i -B5 -A5 "error" job.logLogs runner vs logs job
Section intitulée « Logs runner vs logs job »Cette page couvre les logs de job (visibles dans l’interface GitLab). Si le job ne démarre pas ou si vous suspectez un problème d’executor/cache, consultez les logs du runner :
# Logs du service gitlab-runnerjournalctl -u gitlab-runner -n 200
# Si executor Dockerdocker logs gitlab-runner
# Si executor Kuberneteskubectl logs -n gitlab-runner <pod-name>À retenir
Section intitulée « À retenir »- Scrollez en bas des logs pour voir l’erreur finale
exit code 1= la commande a échoué, lire au-dessus- Sections pliables : cliquez pour ouvrir/fermer
CI_DEBUG_TRACE: truepour le mode verbose (⚠️ expose les secrets !)after_scripts’exécute même après échec ou annulationallow_failure: true= le pipeline continue, mais le job échoue quand même- Pipes avec
|: attention àpipefailqui peut faire échouer la ligne
Testez vos connaissances
Section intitulée « Testez vos connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications