Back to Gitlabhq

Résolution des problèmes liés aux pipelines de merge request

doc-locale/fr-fr/ci/pipelines/mr_pipeline_troubleshooting.md

19.3.06.0 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Lorsque vous travaillez avec des pipelines de merge request, vous pouvez rencontrer les problèmes suivants.

Deux pipelines lors d'un push vers une branche {#two-pipelines-when-pushing-to-a-branch}

Si vous obtenez des pipelines en double dans des merge requests, votre pipeline est peut-être configuré pour s'exécuter à la fois pour les branches et les merge requests en même temps. Ajustez la configuration de votre pipeline pour éviter les pipelines en double.

Vous pouvez ajouter workflow:rules pour passer des pipelines de branche aux pipelines de merge request. Lorsqu'une merge request est ouverte sur la branche, le pipeline bascule vers un pipeline de merge request.

Deux pipelines lors du push d'un fichier de configuration CI/CD invalide {#two-pipelines-when-pushing-an-invalid-cicd-configuration-file}

Si vous poussez une configuration CI/CD invalide vers la branche d'une merge request, deux pipelines en échec apparaissent dans l'onglet des pipelines. L'un est un pipeline de branche en échec, l'autre est un pipeline de merge request en échec.

Lorsque la syntaxe de configuration est corrigée, aucun autre pipeline en échec ne devrait apparaître. Pour identifier et corriger le problème de configuration, vous pouvez utiliser :

Le pipeline de la merge request est marqué comme échoué mais le dernier pipeline a réussi {#the-merge-requests-pipeline-is-marked-as-failed-but-the-latest-pipeline-succeeded}

Il est possible d'avoir à la fois des pipelines de branche et des pipelines de merge request dans l'onglet Pipelines d'une même merge request. Cela peut être intentionnel (par configuration) ou accidentel.

Lorsque le projet a l'option Les pipelines doivent réussir activée et que les deux types de pipelines sont présents, les pipelines de merge request sont vérifiés, et non les pipelines de branche.

Par conséquent, le résultat du pipeline de la merge request est marqué comme non réussi si le merge request pipeline échoue, indépendamment du résultat du branch pipeline.

Cependant :

  • Ces conditions ne sont pas appliquées.
  • Une condition de concurrence détermine quel résultat de pipeline est utilisé pour bloquer ou autoriser les merge requests.

Ce bug est suivi dans le ticket 384927.

An error occurred while trying to run a new pipeline for this merge request. {#an-error-occurred-while-trying-to-run-a-new-pipeline-for-this-merge-request}

Cette erreur peut survenir lorsque vous sélectionnez Exécuter le pipeline dans une merge request, mais que le projet n'a plus les pipelines de merge request activés.

Voici quelques raisons possibles pour ce message d'erreur :

  • Le projet n'a pas les pipelines de merge request activés, ne liste aucun pipeline dans l'onglet Pipelines, et vous sélectionnez Run pipelines.

  • Le projet avait auparavant les pipelines de merge request activés, mais la configuration a été supprimée. Par exemple :

    1. Le projet a les pipelines de merge request activés dans le fichier de configuration .gitlab-ci.yml au moment de la création de la merge request.
    2. L'option Exécuter le pipeline est disponible dans l'onglet Pipelines de la merge request, et sélectionner Exécuter le pipeline à ce stade ne génère probablement aucune erreur.
    3. Le fichier .gitlab-ci.yml du projet est modifié pour supprimer la configuration des pipelines de merge request.
    4. La branche est rebasée pour intégrer la configuration mise à jour dans la merge request.
    5. Désormais, la configuration du pipeline ne prend plus en charge les pipelines de merge request, mais vous sélectionnez Exécuter le pipeline pour exécuter un pipeline de merge request.

Si Exécuter le pipeline est disponible mais que le projet n'a pas les pipelines de merge request activés, n'utilisez pas cette option. Vous pouvez pousser un commit ou rebaser la branche pour déclencher de nouveaux pipelines de branche.

Message Merge blocked: pipeline must succeed. Push a new commit that fixes the failure {#merge-blocked-pipeline-must-succeed-push-a-new-commit-that-fixes-the-failure-message}

Ce message s'affiche si le pipeline de merge request, le pipeline de résultats fusionnés ou le pipeline de merge train a échoué ou a été annulé. Cela ne se produit pas lorsqu'un pipeline de branche échoue.

Si un pipeline de merge request ou un pipeline de résultats fusionnés a été annulé ou a échoué, vous pouvez :

  • Réexécuter l'intégralité du pipeline en sélectionnant Exécuter le pipeline dans l'onglet pipeline de la merge request.
  • Relancer uniquement les jobs ayant échoué. Si vous réexécutez l'intégralité du pipeline, cela n'est pas nécessaire.
  • Pousser un nouveau commit pour corriger l'échec.

Si le pipeline de merge train a échoué, vous pouvez :

  • Vérifier l'échec et déterminer si vous pouvez utiliser l'action rapide /merge pour rajouter immédiatement la merge request au train.
  • Réexécuter l'intégralité du pipeline en sélectionnant Exécuter le pipeline dans l'onglet pipeline de la merge request, puis rajouter la merge request au train.
  • Pousser un commit pour corriger l'échec, puis rajouter la merge request au train.

Si le pipeline de merge train a été annulé avant que la merge request ne soit fusionnée, sans échec, vous pouvez :

  • L'ajouter à nouveau au train.