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)chowned
jenkins: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:
- pourquoi
git ls-remote -h ...
commande appelée quand il doit être <!--6? - 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)
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 URL
dans 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!
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
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)
- Ouvrir Le Gestionnaire Des Tâches (Ctrl + Maj + Echap)
- Aller à l' Services onglet
- cliquez sur le Services... bouton
- Rechercher "Jenkins" dans la liste des services
- cliquez avec le bouton droit de la souris sur "Jenkins" et cliquez sur Propriétés
- cliquez sur le Connecter dans l'onglet Propriétés Jenkins fenêtre
- Choisir Ce compte:Journal sur:
- Saisissez votre nom d'utilisateur et votre mot de passe
- Cliquez sur OK
- redémarrez le service Jenkins
- alors Bob est votre oncle.
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 lesgit ls-remote
la commande.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
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