Utilisation de Jenkins 1.501 et du plugin Jenkins Git 1.1.26
J'ai 3 dépôts git différents chacun avec plusieurs projets.
Maintenant, je dois extraire tous les projets des 3 dépôts git dans le même espace de travail sur un esclave Jenkins. J'ai défini chaque dépôt git dans: Gestion du code source: plusieurs SCM . Mais chaque fois qu'un dépôt est extrait, le dépôt précédent (et ses projets associés) est supprimé.
J'ai lu ceci:
http://jenkins.361315.n4.nabble.com/multiple-git-repos-in-one-job-td4633300.html
mais ça n'aide pas vraiment. J'ai essayé de spécifier le même dossier sous le sous- répertoire local pour le repo (facultatif) pour tous les dépôts mais cela donne le même résultat.
Si cela est tout simplement impossible avec Jenkins, je suppose que certaines étapes / scripts de pré-construction pourraient être utilisés pour déplacer les projets au bon emplacement. Ce n'est pas une option pour modifier la configuration de construction des projets.
Avec le plugin Multiple SCMs:
créez une entrée de référentiel différente pour chaque référentiel que vous devez extraire (projet principal ou projet de dépendance.
pour chaque projet, dans le menu "avancé" (le deuxième menu "avancé", il y a deux boutons étiquetés "avancé" pour chaque référentiel), recherchez le champ de texte "Sous-répertoire local pour repo (optionnel)". Vous pouvez y spécifier le sous-répertoire du répertoire "workspace" dans lequel vous souhaitez copier le projet. Vous pouvez mapper le système de fichiers de mon ordinateur de développement.
Le "deuxième menu avancé" n'existe plus, il faut plutôt utiliser le bouton "Ajouter" (dans la section "Comportements supplémentaires"), et choisir "Extraire dans un sous-répertoire"
J'espère que cela pourra aider.
la source
Depuis plusieurs SCM Plugin est obsolète.
Avec Jenkins Pipeline, il est possible de récupérer plusieurs dépôts git et après l'avoir construit en utilisant gradle
Vous voudrez peut-être envisager d'utiliser des sous-modules git au lieu d'un pipeline personnalisé comme celui-ci.
la source
dir
blocage est la clé, je ne pouvais pas comprendre pourquoi je ne voyais que le dépôt cloné le plus récent dans l'espace de travail de mon travail.23 changes from repo XXX, 3 changes from repo YYY
ou quelque chose de plus compact dans ce sens.J'ai utilisé avec succès le plugin Multiple SCMs conjointement avec le plugin Git avec Jenkins.
la source
Selon les relations entre les référentiels, une autre approche consiste à ajouter l'autre référentiel (référentiels) en tant que sous-modules git à l'un des référentiels. Un sous-module git crée une référence aux autres dépôts. Ces dépôts de sous-modules ne sont pas clonés sauf si vous spécifiez le
--recursive
drapeau lors du clonage du "superprojet" (terme officiel).Voici la commande pour ajouter un sous-module dans le projet actuel:
git submodule add <repository URI path to clone>
Nous utilisons Jenkins v1.645 et le git SCM fera immédiatement un clone récursif pour les superprojets. Voila, vous obtenez les fichiers de superprojet et tous les fichiers de dépôt dépendants (sous-module) dans leurs propres répertoires respectifs dans le même espace de travail Jenkins.
Ne garantissant pas que c'est la bonne approche, c'est plutôt une approche.
la source
Jenkins: Multiple SCM - obsolète. Plugin GIT - ne fonctionne pas pour plusieurs dépôts.
Script / pipeline sous forme de code - est la voie à suivre.
la source
J'ai aussi eu ce problème. Je l'ai résolu en utilisant Trigger / call s'appuie sur d'autres projets. Pour chaque référentiel, j'appelle le projet en aval à l'aide de paramètres.
Projet principal:
Ensuite, pour chaque référentiel, j'appelle un projet en aval comme celui-ci:
Projet en aval: Linux-Tag-Checkout:
la source
Le retrait de plusieurs dépôts à la fois dans un même espace de travail est possible avec Jenkins + Git Plugin (peut-être uniquement dans les versions plus récentes?).
Dans la section "Source-Code-Management", ne sélectionnez pas "Git", mais "Multiple SCMs" et ajoutez plusieurs dépôts git.
Assurez-vous que dans tous sauf un, vous ajoutez comme "Comportement supplémentaire" l'action "Extraire dans un sous-répertoire" et spécifiez un sous-répertoire individuel.
la source
Nous utilisons git-repo pour gérer nos multiples dépôts GIT. Il existe également un plugin Jenkins Repo qui permet de récupérer tout ou partie des référentiels gérés par git-repo dans le même espace de travail Jenkins.
la source