10
votes

Jenkins et plusieurs branches Git?

Je travaille sur un emploi Jenkins et j'en ai besoin pour construire deux branches dans le même référentiel. Comment puis-je faire cela?


0 commentaires

4 Réponses :


5
votes

Considérant que Jenkins ne peut pas exécuter un travail sur deux versions d'un référentiel (ce qui constituerait le contenu de deux branches différentes), je suggérerais de faire deux tâches différentes, une pour chaque branche (avec le Jenkins Git Plugin ).


4 commentaires

N'y a-t-il pas un moyen de construire deux branches à l'intérieur d'un emploi?


@Marx: Comme le plugin est actuellement effectué, non parce que cela nécessite d'abord faire une vérification de la version spécifique une . Cela étant dit, vous pouvez faire référence à ces deux emplois dans un tiers (un wrapper One), comme illustré dans le plugin de jointure ( wiki.jenkins-ci.org/display/jenkins/join+plugin )


N'est-ce pas de multiples matériaux / contrôle de la source possible avec Jenkins? Dans TeamCity, j'ajouterais deux sources, une avec chaque branche.


@ManoJlds: il devrait être possible ( Problèmes.jenkins-ci.org/browse/jenkins- 4542 ou Problèmes.hudson-ci.org/browse/hudson-5158 < / a>), mais je ne pense pas que cela soit encore intégré, surtout lorsque ces multiples sources sont deux branches d'un repo git.



4
votes

Vous demandez si vous souhaitez construire deux branches dans le même répertoire d'espace de travail à commande?

Si dans le même répertoire d'espace de travail, tout ce que vous avez à faire est de créer un script qui va vérifier une branche, la construire, Et quand terminé, cédez la branche suivante, puis la construisez-la. p>

Ce script unique sera alors celui qui sera appelé par le travail unique Jenkins. P>

Par exemple, votre script de construction ressemblerait à ceci: P>

git clone url:repo.git workspace
cd workspace 
git checkout branchA
make
# now you're done building branchA
# next checkout branchB and run make
git checkout branchB
make
# now you are done building branchB


0 commentaires

0
votes

Si vous voulez ce qui précède et que vous souhaitez la fonctionnalité avancée où Jenkins construit une nouvelle succursale et fusionne que pour maîtriser uniquement si la construction réussit (c.-à-d. Vous voulez deux branches principales et deux constructions), vous voudrez peut-être réfléchir à la pipe Le référentiel et la fusion des changements entre les référentiels (GIT est construit pour ce genre de chose, même si je n'ai pas encore reçu ce point d'utilisation).

Vous avez donc essentiellement 2 référentiels GIT et deux constructions de Jenkins et vous pouvez configurer le plug-in GIT pour construire à partir de n'importe quelle branche de chaque référentiel et fusionner en maîtrise de ce référentiel. Donc, chaque référentiel agit comme une branche dans cette configuration.

C'est notre plan lorsque nous ouvrons une nouvelle ligne de version 2.x de notre ligne de sortie 1.x à tout prix correspond à la fourchette. Nous verrons comment cela fonctionne dans la pratique.

plus tard, Dean


0 commentaires

3
votes

Ce plugin construira toutes les branches pour vous: https: / /wiki.jenkins-ci.org/display/jenkins/multi-branch+Project+plugin .

Vous pouvez également utiliser gitlab ( https: //wiki.jenkins-ci .org / Affichage / Jenkins / Gitlab + Plugin ) / GitHub ( https : //wiki.jenkins-ci.org/display/jenkins/github+plugin ) Plugins, qui peuvent déclencher une construction lorsque le code est confié et construire ensuite la branche qui a été comitée.


0 commentaires