web-dev-qa-db-fra.com

Désactiver le pipeline pour chaque commit dans Gitlab et l'exécuter uniquement sur une demande de fusion ouverte

Le pipeline CI est exécuté à chaque commit dans mon référentiel Gitlab au travail. Existe-t-il un moyen de désactiver cela et d'exécuter le pipeline CI sur une demande de fusion ouverte à la branche principale?

Toute aide est appréciée. Merci.

4
jj123456

Non (pas encore!) Vous pouvez suivre le développement attendu des fonctionnalités ici.

https://gitlab.com/gitlab-org/gitlab-ce/issues/23902

Cependant, vous pouvez déclencher automatiquement les pipelines en utilisant le code de "maofr" 

https://gitlab.com/gitlab-org/gitlab-ce/issues/23902#note_88958643

1
Nicolas B.

Oui, mais uniquement si vous le définissez pour chaque travail du pipeline.

https://docs.gitlab.com/ee/ci/yaml/#only-and-ex-simplified

job:
  script: echo 'test'
  only:
    - merge_requests

Ce travail ne s'exécutera que sur les validations faisant partie d'une demande de fusion, et non à chaque envoi d'une validation dans une branche. Si vous définissez chaque travail sur ce paramètre, le pipeline ne s'exécutera jamais.

0
BenFreke

Il n'y a actuellement aucune option de configuration pour le faire. Voici certaines choses qui peuvent être utilisées pour "désactiver" une construction de pipeline.

  • L'ajout de [ci skip] à l'intérieur du message de validation ne déclenchera pas de pipeline sur Push.
  • Utilisation des options except et only sur tous les travaux du pipeline. Pour éviter les doublons dans ce cas, vous pouvez utiliser Ancres .

Mise à jour: GitLab 11.7

Lorsque vous appuyez sur GitLab, vous pouvez ignorer le déclenchement d'un pipeline en passant l'option ci.skip à la commande Push: git Push -o ci.skip

0
yamenk