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é ce qui suit:
chmod 777
dans le dossier repo (dossier contenant le répertoire .git)chowned
à jenkins:jenkins
dans le dossier repoLorsque j'exécute la commande ci-dessus: /usr/bin/git ls-remote -h file:///home/myuser/path/to/project HEAD
sur cmd, je récupère les branches.
Mes questions sont:
git ls-remote -h ...
est-elle appelée alors qu'elle devrait être git clone ...
?Mon environnement:
RHEL 5.9
Jenkins 1.519 installé en tant que service (pas de conteneur Web)
Lors de l'installation de Jenkins
en tant que service, par défaut, Jenkins
ne crée pas de répertoire utilisateur comme dans: /home/jenkins
. Le répertoire de base par défaut de Jenkins est défini sur /var/lib/jenkins
. Comme je m'y attendais, jenkins
a du mal à accéder aux ressources locales à partir du répertoire des autres utilisateurs.
J'ai déplacé mon référentiel cloné sous le répertoire de base par défaut de Jenkins, c'est-à-dire sous /var/lib/jenkins
, de sorte que ma Repository URL
in configuration de projet Jenkins ressemble à ceci: file:///${JENKINS_HOME}/repo/<myprojectname>
UPDATE: Ce qui précède fonctionne bien ... mais j'ai trouvé un meilleur moyen de le faire à partir de ce blog
Les étapes sont décrites ici:
recherchez le script /etc/init.d/jenkins
. Quelques variables $JENKINS
sont définies. Cela devrait vous conduire à la sysconfig
pour jenkins i.e. /etc/sysconfig/jenkins
. Arrêtez votre instance de Jenkins:
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>"
Changer la propriété de tous les annuaires Jenkins associés:
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!
Cette question a été posée il y a longtemps, mais j'avais ce problème aujourd'hui et il y a très peu de ressources. Probablement parce que les gens ont tendance à se connecter à distance aux dépôts git.
J'ai vérifié à l'aide de strace ce que faisait exactement Jenkins et oui, c'était un problème d'autorisations.
Mais je l'ai résolu d'une manière plus simple que la réponse n ° 2 - en ajoutant Jenkins au groupe de serveurs git - dans mon cas, git1: root# gpasswd -a jenkins git1 root# service jenkins restart
J'exécute Jenkins sur Windows et j'ai eu le même problème. J'ai pu résoudre ce problème en demandant au service Jenkins de se connecter en tant qu'utilisateur sur mon ordinateur portable.
(Windows 7)
Jenkins utilise la commande git clone
uniquement pour la première fois lorsqu'un espace de travail est configuré pour un projet. D'autres instances utilisent la commande git ls-remote
.
J'ai eu le même problème lorsque j'ai configuré Jenkins. Le problème a été résolu en jouant avec les clés SSH. Cela ressemble aussi à un problème de configuration. Vérifiez si les clés SSH sont configurées pour le compte Jenkins.
Voir également la procédure pas à pas de configuration de SSH dans le lien fourni. Cela peut ne pas vous donner la solution exacte, mais peut vous diriger vers la solution.
http://oodlestechnologies.com/blogs/How-to-setup-Jenkins-With-Grails-on-Ubuntu
Je trouve que les autres solutions sont un peu "hacky" pour moi. Ce que j'ai fait est de déplacer le dossier Jenkins Home de/Users/Shared/vers/Users/[myacccount] /. De cette façon, mon Jenkins aura accès à mon dépôt et à mon SDK Android (car c'est là que j'utilise Jenkins). Modifiez ensuite la variable d'environnement JENKINS_HOME. Je l'ai fait en entrant le JENKINS_HOME dans mon .bash_profile (mais il y a d'autres façons de le faire).
Note: j'utilise OSX