Dans Jenkins, Comment vérifier un projet dans un répertoire spécifique (en utilisant GIT)

Désolé pour le 'svn' style - nous sommes dans un processus de migration de SVN à GIT (y compris notre CI Jenkins de l'environnement).

ce dont nous avons besoin est de pouvoir faire Jenkins à la caisse (ou devrais-je dire clone?) le projet GIT (référentiel?) dans un répertoire spécifique. Nous avons essayé la magie de refspecs, mais ce n'était pas évident à comprendre et à utiliser avec succès.

de plus, si dans le même projet Jenkins nous avons besoin de vérifier plusieurs dépôts privés GitHub dans plusieurs DIR séparés sous une racine de projet, Comment Pouvons-nous faire s'il vous plaît?

nous avons installé le plugin GitHub. J'espère que nous avons bien formulé les choses.

40
demandé sur Noob Coder 2012-03-19 13:43:12

7 réponses

par défaut git plugin pour Jenkins fait le travail très bien.

Après l'ajout d'un nouveau dépôt git (projet de configuration > Gestion Du Code Source > cochez l'option GIT) pour le projet naviguez vers le bas des paramètres du plugin, juste au-dessus de navigateur de dépôt région. Il devrait y avoir un Avancé bouton. Après avoir cliqué dessus un nouveau formulaire devrait apparaître, avec une valeur décrite comme sous-répertoire Local pour repo (facultatif). Mettre ce paramètre à folder va rendre le plugin pour vérifier le dépôt dans le dossier relatif à votre espace de travail. De cette façon, vous pouvez avoir autant de dépôts dans votre projet que vous avez besoin, tous dans des endroits séparés.

alternativement, si le projet que vous utilisez le permet, vous pouvez utiliser les sous-modules GIT, qui sont similaires aux chemins externes dans SVN. Dans le Git Book il y a une section sur ce sujet. Si ça va pas contrairement à certaines règles, les sous-modules sont assez simples à utiliser, vous donnant un moyen puissant de contrôler les emplacements, les versions/tags/branches qui seront importés et il sera disponible sur votre dépôt local ainsi vous donnant une meilleure portabilité.

évidemment le plugin GIT supporte la vérification des sous-modules, donc Jenkins peut travailler avec eux très efficacement.

35
répondu Łukasz Rżanek 2012-03-20 17:29:04

je suis d'accord avec @Łukasz Rżanek que l'on peut utiliser git plugin

mais, j'utilise l'option: checkout à une sous-direction ce qui est Activer comme suit:

Gestion Du Code Source cocher Git

cliquez sur le bouton ajouter, sélectionnez passage à la caisse pour un sous-répertoire

enter image description here

39
répondu biolinh 2016-09-16 22:28:10

dans le nouveau pipeline Jenkins 2.0 (précédemment nommé le Plugin Workflow), cela se fait différemment pour:

  • le dépôt principal
  • autres dépôts supplémentaires

je me réfère ici spécifiquement à la version 2.9 du Pipeline Multibranch.

dépôt principal

C'est le référentiel qui contient votre Jenkinsfile.

Dans le configurer écran pour votre projet de pipeline, entrer le nom du dépôt, etc.

Ne pas utiliser comportements supplémentaires > consultez un sous-répertoire. Cela permettra de mettre votre Jenkinsfile dans le sous-répertoire où Jenkins ne le trouve pas.

Jenkinsfile, vérifiez le dépôt principal dans le sous-répertoire en utilisant dir():

dir('subDir') {
    checkout scm
}

dépôts supplémentaires

si vous voulez vérifier plus de dépôts, utilisez le Syntaxe Du Pipeline générateur pour générer automatiquement un code Groovy snippet.

Dans le configurer écran pour votre projet de pipeline:

  1. Sélectionner Syntaxe Du Pipeline. Dans le Exemple de Étape menu déroulant, choisissez check-out: General SCM.
  2. Sélectionnez votre système SCM, comme Git. Remplissez les informations habituelles à propos de votre dépôt ou depot.
  3. notez que dans le Pipeline Multibranch, environnement variable env.BRANCH_NAME contient le nom de la branche du dépôt principal.
  4. Dans le Autres Comportements menu déroulant, sélectionnez extraire vers un sous-répertoire
  5. Cliquez sur Générer Groovy. Jenkins affichera le code Groovy snippet correspondant à la caisse SCM que vous avez spécifiée.
  6. Copiez ce code dans votre script de pipeline ou Jenkinsfile.
27
répondu John McGehee 2016-12-19 20:07:08

cela vaut la peine d'étudier le plugin Pipeline. Avec le plugin, vous pouvez vérifier plusieurs projets VCS dans des chemins de répertoires relatifs. Création préalable d'un répertoire par checkout VCS. Ensuite, lancez des commandes à L'espace de travail VCS nouvellement vérifié. Dans mon cas, je suis en utilisant git. Mais vous devriez obtenir l'idée.

node{
    def exists = fileExists 'foo'
    if (!exists){
        new File('foo').mkdir()
    }
    dir ('foo') {
        git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
        ......
    }
    def exists = fileExists 'bar'
    if (!exists){
        new File('bar').mkdir()
    }
    dir ('bar') {
        git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
        ......
    }
    def exists = fileExists 'baz'
    if (!exists){
        new File('baz').mkdir()
    }
    dir ('baz') {
        git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
        ......
    }
}
13
répondu Jeremy Whiting 2016-10-07 07:45:42

En outre, si dans le même projet Jenkins nous avons besoin de vérifier plusieurs dépôts privés GitHub dans plusieurs DIR séparés sous une racine de projet. Comment pouvons-nous faire s'il vous plaît?

Jenkin Multiples Mec Plugin a résolu le problème de plusieurs dépôts pour moi très bien. Je viens de travailler sur un projet de construction qui vérifie quatre différentes git repos sous un dossier commun. (Je suis un peu réticent à utiliser git super-projets comme suggéré précédemment par Łukasz Rżanek, que git est assez complexe sans submodules.)

5
répondu Alberto 2017-05-23 12:18:21

dans le nouveau Pipeline, l'image suivante peut aider ..

enter image description here

0
répondu Sunny Tambi 2018-04-16 16:28:15

Je n'utilise pas le plugin GitHub, mais à partir de la page d'introduction, c'est plus ou moins comme le plugin Gerrit-trigger.

vous pouvez installer git plugin, qui peut vous aider à vérifier vos projets, si vous voulez inclure des multi-projets dans une tâche jenkins, il suffit d'ajouter un dépôt dans votre tâche.

Br, Tim

-3
répondu Tim 2012-03-19 09:58:49