le plugin Git pour Jenkins ne parvient pas à cloner un repo de la machine locale. Code d'erreur 128

Erreur:

Failed to connect to repository : Command "/usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD" returned status code 128:
stdout:
stderr: fatal: 'home/myuser/path/to/project' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

j'ai essayé le code suivant:

  • chmod 777 vers le dossier repo (dossier contenant .répertoire git)
  • chownedjenkins:jenkins sur le dossier repo
  • a essayé de cloner dans un autre dossier à partir de ce dossier local repo: cela fonctionne!

Quand je lance la commande ci-dessus: /usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD sur cmd j'obtiens les branches.

Mes questions sont:

  1. pourquoi git ls-remote -h ... commande appelée quand il doit être <!--6?
  2. comment configurer le plugin jenkins Git pour récupérer le code à partir de la repo locale

Mon environnement:

RHEL 5.9

Jenkins 1.519 installé en tant que service(pas de conteneur Web)

git plugin

16
demandé sur Vikram 2013-06-26 01:32:07

5 réponses

Lors de l'installation Jenkins comme un service, par défaut, Jenkins ne crée pas de répertoire utilisateur comme dans: /home/jenkins. Le répertoire par défaut de Jenkins est/var/lib/jenkins. De mon travail, comme vous pouvez l'attendre, jenkins a de la difficulté à accéder aux ressources locales du répertoire des autres utilisateurs.

j'ai déplacé mon repo cloné sous Jenkins default home directory i.e. sous /var/lib/jenkins donc mon Repository URLdans la configuration de projet de Jenkins ressemble à: file:///${JENKINS_HOME}/repo/<myprojectname>

mise à jour: Le ci-dessus fonctionne très bien ...mais j'ai trouvé une meilleure façon de le faire à partir de ce blog

Les différentes étapes sont décrites ici:

rechercher /etc/init.d/jenkins script. Il y a un peu $JENKINS les variables définies . Cela devrait vous conduire à l' sysconfig pour jenkins, c'est à dire /etc/sysconfig/jenkins. Arrêter votre jenkins exemple:

sudo /sbin/service jenkins stop

faire une sauvegarde

cp /etc/sysconfig/jenkins /etc/sysconfig/jenkins.bak

Dans ce fichier, modifiez la propriété suivante:

$JENKINS_USER="<your desired user>"

Modifier la propriété de tous les Jenkins répertoires:

chown -R <your desired user>:<your user group> /var/lib/jenkins

chown -R <your desired user>:<your user group> /var/cache/jenkins

chown -R <your desired user>:<your user group> /var/log/jenkins

redémarrez jenkins et cette erreur devrait disparaître

sudo /sbin/service jenkins start

cette erreur devrait disparaître maintenant!

15
répondu Vikram 2013-08-09 17:28:11

Cela fait longtemps que cette question n'a pas été posée, mais j'ai eu ce problème aujourd'hui et il y a très peu de ressources. Très probablement, parce que les gens ont tendance à se connecter aux dépôts git à distance.

j'ai vérifié en utilisant strace ce que faisait exactement jenkins et oui, c'était un problème avec les permissions.

mais je l'ai résolu d'une manière plus simple que la réponse #2 - en ajoutant jenkins au groupe serveur git - dans mon cas, git1: root# gpasswd -a jenkins git1 root# service jenkins restart

8
répondu Bulba 2014-04-22 20:46:22

J'exécute Jenkins sur Windows et j'ai eu le même problème. J'ai pu résoudre cela en ayant le service Jenkins se connecter comme mon utilisateur sur mon ordinateur portable.

(Windows 7)

  1. Ouvrir Le Gestionnaire Des Tâches (Ctrl + Maj + Echap)
  2. Aller à l' Services onglet
  3. cliquez sur le Services... bouton
  4. Rechercher "Jenkins" dans la liste des services
  5. cliquez avec le bouton droit de la souris sur "Jenkins" et cliquez sur Propriétés
  6. cliquez sur le Connecter dans l'onglet Propriétés Jenkins fenêtre
  7. Choisir Ce compte:Journal sur:
  8. Saisissez votre nom d'utilisateur et votre mot de passe
  9. Cliquez sur OK
  10. redémarrez le service Jenkins
  11. alors Bob est votre oncle.
5
répondu Greg Burghardt 2016-06-03 12:12:01
  1. Jenkins utilise git clone commande uniquement pour la première fois lorsqu'un espace de travail est configuré pour un projet. Voici d'autres exemples utilisant les git ls-remote la commande.

  2. j'ai eu le même problème quand J'ai configuré Jenkins. Il a été résolu en jouant autour avec les clés SSH. Cela ressemble à un problème de configuration. Vérifiez si les clés SSH sont configurées pour le compte Jenkins.

voir Aussi la procédure étape par étape de configuration de SSH dans le lien fourni. Cela pourrait ne pas vous donner la solution exacte, mais peut vous indiquer la solution.

http://oodlestechnologies.com/blogs/How-to-setup-Jenkins-With-Grails-on-Ubuntu

3
répondu Mir S Mehdi 2013-07-01 02:02:40

je trouve que les autres solutions sont un peu "hacky" pour moi. Ce que j'ai fait, c'est déplacer le dossier Jenkins de /Users/Shared/ to /Users/[mysccount]/. De cette façon, mon Jenkins aura accès à mes repos et à mon SDK Android (parce que c'est pour cela que J'utilise Jenkins). Puis changez la variable D'environnement JENKINS_HOME. J'ai fait cela en entrant le JENKINS_HOME dans mon .bash_profile (mais il y a d'autres façons de le faire).

Note: j'utilise OSX

0
répondu gilsaints88 2016-09-28 01:40:55