28 votes

Jenkins suspendu à "Récupération des modifications en amont depuis l'origine"

Je suis en train de configurer Jenkins sur un Serveur Windows 2012 de la machine, et je vais avoir beaucoup de difficulté.

Les choses que j'ai fait:

  • Créé par un mot de passe de moins id_rsa, et id_rsa.pub
  • Créé un known_hosts le fichier pour bitbucket.org à l'aide de ssh.exe -T bitbucket.org et en acceptant d'ajouter de l'hôte.
  • Ajouté E: à l'échelle du Système à la MAISON de la Variable
  • J'ai ajouté ces fichiers en C:/Windows/SysWOW64/config/systemprofile/.ssh ainsi que E:/.ssh
  • J'ai lié ma clé publique à Bitbucket comme un déploiement clé.
  • J'ai triple vérifié toutes mes Url, nom d'utilisateur, etc.
  • J'ai même extraite manuellement à partir du référentiel de l'installation d'une base initiale, en C:/Program Files (x86)/Jenkins/jobs/MyProject/workspace/

Et pourtant, il se bloque toujours au

Building in workspace C:\Program Files (x86)\Jenkins\jobs\MyProject\workspace
Checkout:workspace / C:\Program Files (x86)\Jenkins\jobs\MyProject\workspace - hudson.remoting.LocalChannel@13ca972
Using strategy: Default
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin

Je l'ai donné environ 20 minutes, il n'est donc pas une vitesse / taille de l'opération d'émission. Si j'annule, ce est ce qui est retourné:

ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Error performing command: C:\Program Files     (x86)\Git\bin\git.exe fetch -t origin +refs/heads/*:refs/remotes/origin/*
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:780)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:739)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.fetch(CliGitAPIImpl.java:160)
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:230)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:793)
at hudson.plugins.git.GitSCM.access$000(GitSCM.java:57)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:976)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:942)
at hudson.FilePath.act(FilePath.java:865)
at hudson.FilePath.act(FilePath.java:838)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:942)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1364)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:670)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:575)
at hudson.model.Run.execute(Run.java:1575)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:237)
Caused by: java.lang.InterruptedException
at java.lang.ProcessImpl.waitFor(Native Method)
at hudson.Proc$LocalProc.join(Proc.java:319)
at hudson.Launcher$ProcStarter.join(Launcher.java:360)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:769)
... 19 more
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:981)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:942)
at hudson.FilePath.act(FilePath.java:865)
at hudson.FilePath.act(FilePath.java:838)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:942)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1364)
at     hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:670)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:575)
at hudson.model.Run.execute(Run.java:1575)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:237)

Je suis à bout de ressources ici, j'ai donc reconnaissant de toute l'aide que je peux obtenir. Voici un choix de quelques articles que j'ai essayé avec aucune amélioration.

Authentifier Jenkins CI pour Github repository privé

Jenkins, Git - Permission denied (publickey)

Hudson Git Plugin ne fonctionne pas sur windows

http://computercamp.cdwilson.us/jenkins-git-clone-via-ssh-on-windows-7-x64

26voto

David Gageot Points 460

Voici comment j'ai résolu un problème similaire:

Msysgit installe deux git.exe . Un sous C:\Program Files (x86)\Git\bin et un second sous C:\Program Files (x86)\Git\cmd . Le premier ne peut pas être utilisé avec Jenkins. Il se bloquera après avoir terminé son travail. Le second fonctionne parfaitement.

Mettez à jour vos paramètres Jenkins Git pour pointer vers le cmd\git.exe correct et profitez-en!

2voto

jdknight Points 330

Juste l'expérience de la congeler à 'l'Extraction de changements en amont de l'origine" ainsi.

L'exécution de Jenkins en tant que service sur une machine utilisant Windows semble (d'après ce que j'ai vécu) à avoir des problèmes lors de l'utilisation de SSL.

Solution De Rechange]

  1. Modifier votre Jenkins pour s'exécuter sous un compte local.
  2. Assurer votre compte administrateur local est configuré pour exécuter Git interaction avec SSH.
  3. Redémarrez Jenkins (détails).
  4. Si Jenkins ne démarre pas, il a eu des problèmes en essayant de tirer à partir de Git. Manuellement tuer git et ssh processus, de tuer votre java.exe de Jenkins et de démarrer manuellement le Jenkins service.

Détails sur Pourquoi j'ai choisi cette Solution]

J'ai suivi d'autres étapes avant la configuration de l'hôte autorisé à accepter le serveur et l'enregistrement de Jenkins de la clé sur le serveur pour autoriser la connexion. J'ai fait sûr que je pourrais réaliser avec succès Git actions sous mon compte Système Local (dont le Jenkins service a été exécuté sous). Encore, l'extraction de geler. Pour vérifier que mon Git et SSL a été configuré correctement, je suis même allé à la configuration initiale de dépôt Git dans mon Jenkins répertoire des tâches et effectué avec succès un pull request sous le compte système local. Il a travaillé; par conséquent, les clés ont été configurés correctement.

J'ai oublié où j'ai lu cela, mais j'ai entendu que des problèmes surviennent lorsque vous traitez avec Git/SSH en vertu d'un système local. Avec cette connaissance, j'ai joué avec mon Git de l'environnement et une altération de la GIT_SSH variable d'environnement pour utiliser plink (avec une combinaison de Mastic pour se souvenir de la clé du serveur, puttygen pour convertir une clé OpenSSL pour un Mastic de la clé et de spectacle à me souvenir de ma clé) pour plink. Une fois que je l'ai eu à travailler avec plink, je n'ai pas trouve une solution utilisable. Je commande à utiliser correctement plink, j'ai dû également exécuter concours de sous mon compte système local pour avoir le Jenkins service correctement négocier SSH appels. Après avoir réfléchi à comment j'allais correctement le programme d'installation de mon état initial en cas de redémarrage, je ne voulais pas mettre autant d'efforts dans l'obtention de la connexion SSH de travail.

Au lieu de cela, j'ai décidé qu'il était plus facile de simplement exécuter Jenkins sous mon compte d'administrateur local qui a également été configuré pour traiter avec le serveur Git. Pas avoir à traiter avec configuré clés SSH pour le compte système local et mon git actions a bien fonctionné.


Remarque, David Gageot de réponse peut s'appliquer à certains. Je n'ai pas eu à modifier mon Git paramètres que lorsque j'ai installé Git, je choisis l'option Run Git from the Windows Command Prompt qui correspond à un chemin d'accès à l' C:\Program Files (x86)\Git\bin\cmd\ répertoire.

2voto

Woland Points 475

Un autre lien que j'ai trouvé très utile lors de la configuration de jenkins sur Windows, en particulier lors de l'utilisation du programme d'installation MSI, est le suivant: http://opensourcetester.co.uk/2013/06/28/jenkins-windows-ssh/

Et une autre chose que je n'ai pas trouvée évidente: vous devez utiliser l'URL SSH lors de la connexion à Github au lieu de https par défaut. Espérons que cela fera gagner du temps à quelqu'un.

2voto

Sheparzo Points 41

J'ai eu ce même problème sur mon ordinateur portable et j'ai pu trouver une solution, mais cela ne s'applique vraiment que si vous exécutez la guerre Jenkins dans un conteneur Web Tomcat configuré en tant que service Windows.

Je viens de définir le service Tomcat pour se connecter en tant qu'utilisateur Windows au lieu du système local.

2voto

user2553930 Points 42

C'est comment je l'ai résolu:

J'ai couru les outils sysinternals psexec pour frayer un CMD qui s'exécute sous le compte système local (même compte comme jenkins service est en cours d'exécution)

PSEXEC -i -s -d CMD

Dans cette invite de cmd j'ai exécuté la même commande git à partir de l'espace de travail répertoire que la pendaison GIT.exe les processus de le faire. E. g.

d:\Programs\Jenkins\jobs\jobname\workspace>D:\Programs\Git\bin\git.exe fetch-t ssh+git://gitpub@my.server.com:9360/data/gitpub/myRepository.git +refs/heads/:refs/remotes/origin/

Et voila: j'ai été invité à entrer "oui" pour ajouter la clé SSH à la liste connue des hôtes connus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X