doc-locale/fr-fr/ci/pipelines/merged_results_pipelines.md
{{< details >}}
{{< /details >}}
Les pipelines de résultats fusionnés testent un commit fusionné temporaire qui combine le code des branches source et cible. Ce commit n'existe dans aucune branche, mais vous pouvez le consulter dans les détails du pipeline.
Cette approche permet de vérifier que les modifications fonctionnent avec le code de la dernière branche cible, de détecter les problèmes d'intégration avant la fusion et de s'assurer que les modifications apportées à différents fichiers fonctionnent ensemble.
Les pipelines de résultats fusionnés ne peuvent pas s'exécuter lorsque la branche cible comporte des modifications qui entrent en conflit avec les modifications de la branche source. Dans ce cas, GitLab exécute à la place un pipeline de merge request standard.
Prérequis :
.gitlab-ci.yml doit être configuré pour les pipelines de merge request.Pour activer les pipelines de résultats fusionnés dans un projet :
[!warning] Si vous activez ce paramètre sans configurer les pipelines de merge request dans votre fichier
.gitlab-ci.yml, vos merge requests risquent de rester bloquées dans un état non résolu ou vos pipelines risquent d'être abandonnés.
Lorsque vous utilisez des pipelines de résultats fusionnés, vous pouvez rencontrer les problèmes suivants.
rules:changes:compare_to {#jobs-or-pipelines-run-unexpectedly-with-ruleschangescompare_to}Il se peut que certains jobs ou pipelines s'exécutent de manière inattendue lors de l'utilisation de rules:changes:compare_to avec des pipelines de merge request.
Ce problème survient car les pipelines de résultats fusionnés utilisent le commit fusionné temporaire comme base de comparaison. Ce commit contient des modifications provenant à la fois de la branche de votre merge request et de la branche cible, ce qui peut entraîner un déclenchement inattendu des règles.
Par exemple, si votre merge request ajoute src/feature.js et que la branche cible contient src/utils.js, le commit fusionné temporaire inclut les deux fichiers. Une règle avec rules:changes:compare_to: main détecte les deux modifications, pas seulement votre fichier de fonctionnalité, et peut déclencher des jobs qui ne devraient s'exécuter que pour vos modifications.
Pour résoudre ce problème :
compare_to pour utiliser le comportement de comparaison par défaut.rules:changes sans compare_to.Vous pourriez rencontrer une situation où un pipeline de branche échoué est ignoré lorsque le paramètre Les pipelines doivent réussir est activé.
Ce problème survient en raison de la priorisation de la logique de pipeline. La prise en charge des améliorations est proposée dans le ticket 385841.