Jenkins ne peut pas cloner le dépôt Git sur Git/SSH sur Windows
J'ai cloné le dépôt Git dans Jenkins sur Git/SSH sur Windows 2008 32-bit. Quand j'ai essayé de faire la même chose sur Windows 2008 64 bits, Sortie de la Console page est coincé ici:
Démarré par l'utilisateur anonymous
Checkout:book /C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Using strategy: Default
Last Built Revision: Revision 5d7ce4ae23c91fb201ee005e6db17bcd795ca965 (origin/HEAD, origin/master)
Checkout:book /C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Cloning the remote Git repository
Cloning repository origin
Quand j'ai arrêter de le construire (après quelques minutes d'être coincé là-bas), je reçois le reste du message d'erreur:
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:zeljkofilipin/watirbook.git
ERROR: Cause: Error performing command: C:\Git\bin\git.exe clone --progress -o origin [email protected]:zeljkofilipin/watirbook.git C:\Jenkins\workspace\book
null
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1042)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
at hudson.FilePath.act(FilePath.java:785)
at hudson.FilePath.act(FilePath.java:767)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:968)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1193)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:567)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:455)
at hudson.model.Run.run(Run.java:1404)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
- Je peux cloner le dépôt via Git en lecture seule URL
git://github.com/zeljkofilipin/watirbook.git
de Jenkins sur les deux machines - Je peux cloner via Git/URL SSH
[email protected]:zeljkofilipin/watirbook.git
à partir de la ligne de commande sur les deux machines - Je peux cloner via Git/URL SSH à partir de Jenkins sur une machine 32 bits, mais pas sur une machine 64 bits.
La seule différence que je peux remarquer entre les deux machines (sans compter que l'on est une machine virtuelle sur mon ordinateur portable, et l'autre est une véritable machine en Suisse) c'est que le premier est de 32 bits et le second est de 64 bits.
Ne sais pas si cela pourrait être lié, mais la machine 32 bits a l'emplacement mis à la Croatie, et la machine 64 bits pour la Suisse (comme vous pouvez le voir à partir de la sortie de Git en français).
Pour plus d'informations, veuillez consulter mon blog: Jenkins, Windows et Git
- Le lien vers votre blog ne fonctionne plus; vous pouvez mise à jour 🙂
- merci de me le faire savoir, j'ai réparé le lien brisé.
- Merci, mec! (Je ne semble pas être en mesure de vous marquer dans ma réponse; est-ce Débordement de Pile ont des problèmes avec la háček?)
- un utilisateur peut être averti; le post propriétaire sera toujours informé"
- Aaaaaah. Merci 🙂
Vous devez vous connecter pour publier un commentaire.
Je suis passé par ces douleurs récemment. Surtout frustrant, c'est le manque de journaux d'erreur dans ce scénario: probablement parce que MSysgit invite l'utilisateur sur la console lorsque vous essayez de récupérer, ce qui ne veut pas obtenir par le biais de Jenkins de la console.
D'après mon expérience, voici quelques éléments clés à surveiller:
<MSYSGIT_ROOT>\cmd\git.cmd
que<MSYSGIT_ROOT>\bin\git.exe
HOME
variable pour windows esclaves explicitementgit clone
dans un "Exécuter shell/lot" étape de génération. Qui devrait révéler un peu plus d'infos. BTW, vous pouvez faire uneenv
dans la même étape et peut-êtrels %HOME%/.ssh
Je pense que le ci-dessus est ce qui m'a donné un travail Windows 7 64 bits Jenkins esclave avec git soutien - bien que je pensais que cela avait plus à voir avec une autre belle config en détail qu'avec 64 vs 32 bits. Bonne chance en tout cas!
<MSYSGIT_ROOT>\cmd\git.cmd
au lieu de<MSYSGIT_ROOT>\bin\git.exe
résolu le problème.git.cmd
, le clonage sur Git/SSH ne fonctionne pas avec git.exe.Dans la dernière version de git, il fallait utiliser %GIT_HOME%/cmd/git.exe plutôt que d' %GIT_HOME%/bin/git.exe et en explorant le répertoire home de l'utilisateur qui exécute le jenkins service.
Une autre question, j'ai fait face a ssh.exe n'était pas à la recherche à la
%userprofile%/.ssh
dossier pour les fichiers de clé. Au lieu de cela il a été à la recherche pour le dossierC:\Program Files (x86)\Git\.ssh
qui était vide et qui provoque un blocage dû à l'invite d'authentification ssh sur la machine où repo git situé.Nous avons juste copié les fichiers de clé sous
%userprofile%/.ssh
àC:\Program Files (x86)\Git\.ssh
et le problème est résolu.Des Notes à partir d'un dur appris la leçon.
J'ai eu des problèmes pour obtenir le ssh pour courir Jenkins comme un nom de compte d'utilisateur pour ssh+git.
Voici ce que j'avais à faire pour résoudre le problème:
J'ai essayé avec puttygen et GET_SSH=plink que tous échoué en très mauvais, mais pas d'effacer les erreurs.
Lorsque vous devez utiliser toutes les options de configuration de l'utilisateur du fichier de configuration par exemple. ~/.ssh/config vous pouvez les mettre dans C:\Program Files (x86)\Git\etc\ssh\ssh_config, les fichiers de clé peut être mis en C:\Program Files (x86)\Git.ssh
Si votre compte est joint à un domaine. Ensuite, vous devez vous assurer de l'utilisateur pour lequel le Jenkins Esclave est couru. Dans le but d'ouvrir Paramètres->Propriétés de "Jenkins Esclave"->Journal Sur. et choisissez nécessaire utilisateur de domaine pour l'exécution correcte.
Depuis mon Windows Jenkins était un esclave, j'avais besoin de configurer le nœud de trouver le git dans cmd au lieu de bin comme décrit par inger. Pour ce faire, accédez à Gérer Jenkins, de Gérer des Nœuds, cliquez sur le nœud approprié, cliquez sur Configurer, puis accédez à l'Outil de Lieux. Trouver git dans la liste déroulante, puis spécifiez le chemin d'accès à git.exe (y compris les git.exe), comme C:\Program Files\Git\cmd\git.exe.
J'ai confirmé que le cmd/git.exe travaillé différemment de celle de la bin/git.exe à partir à la fois de la ligne de commande et avec un temporaire de jenkins travail à l'aide de la commande git (au lieu d'une scm repo).
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin
Il suffit d'ajouter un ssh-permis d'utilisateur d'ouverture de session de Jenkins et il devrait bien fonctionner.