web-dev-qa-db-fra.com

Construisez uniquement la branche Git qui a été poussée à

J'ai un travail Jenkins pour construire la branche master de mon dépôt GitHub. Cela se déclenche bien lorsque je pousse un commit sur master, et j'en suis très heureux.

J'aimerais également avoir un seul travail Jenkins qui permettrait de créer n'importe quelle autre branche de ce référentiel. C'est à dire. chaque fois que j'exige un commit dans une branche (ce qui n'est pas master), j'aimerais avoir ce travail Jenkins pour créer cette branche, et uniquement cette branche.

Pour utiliser le plugin GitHub pull-request, il faut que je crée une demande pull et fusionne mon commit avec master. Je voudrais faire cela sans avoir à créer de requête pull et à ne construire que mon commit sans le fusionner avec master.

Configurer le plugin Git pour construire toutes les branches signifie que chaque fois que je Push to master, toutes les branches sont construites. Je voudrais seulement construire la branche qui a été modifiée.

Est-ce possible de faire à Jenkins?

21
Lóránt Pintér

Vous pouvez y voir le plugin de configuration de plusieurs branches avec Jenkins. Avec cette méthode, il est possible d’obtenir un retour d’information pour toute branche de Jenkins.

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

J'espère que cela peut aider.

4
thatway_3

Il y a une configuration whitelist répertoriée dans la section Build Trigger:

 click advanced to expand all options

 whitelist

Vous pouvez y spécifier/tester la branche dans laquelle le PR sera fusionné.

1
Robert

En fait, il semble y avoir une réponse précise à cette question sur la page du plugin Jenkins GitHub:

Déclenche une construction lorsqu'un changement est poussé dans GitHub

0
LeGEC

Comme @ thatway_3 mentionné , cela est possible avec un plugin. Le plug-in de projet à plusieurs branches auquel ils sont liés est obsolète, mais vous pouvez utiliser le Plug-in Pipeline Multibranch .

Si vous installez ce plug-in puis créez un nouveau travail de type "Pipeline Multibranch", vous pouvez le configurer pour suivre un référentiel particulier. Il va ensuite (correctement!) Construire toutes les branches à partir de là.

Voir aussi: https://jenkins.io/blog/2015/12/03/pipeline-as-code-with-multibranch-workflows-in-jenkins/

J'espère que cela t'aides.

0
Sam