web-dev-qa-db-fra.com

Jenkins donnant une erreur en clonant depuis gitHub

Je suis nouveau sur Jenkins, je reçois une erreur suivante lors du clonage du référentiel à partir de GitHub.

J'ai essayé de rechercher tous les problèmes pertinents ici, mais je pouvais trouver stacktstrace avec des réponses.

J'essaie de cloner un référentiel nécessitant un nom d'utilisateur et un mot de passe. Je fournis SSH:// chemin du référentiel dans les paramètres de configuration du travail pour mon travail. Je n'ai pas encore défini de paramètres liés à .ssh, car cela semble être un problème différent du problème de sécurité lié au référentiel GIT. 

Je n'arrivais pas à comprendre quel commentaire Jenkins essayait d'exécuter, quel fichier/répertoire il ne trouvait pas désemparé.

Voici ma trace exacte de la pile du travail de Jenkins:

Causée par: Java.io.IOException: impossible d'exécuter le programme: erreur lors de la tentative de Déterminez la version de git: Erreur lors de l'exécution de la commande: --version En supposant que 1.6 ERREUR: erreur de clonage du référentiel distant 'myRE': impossible de cloner [email protected]: myORG/RVL.myProj.git hudson.plugins.git.GitException: impossible de cloner [email protected]: myORG/RVL.myProj.git sur hudson.plugins.git.GitAPI.clone (GitAPI.Java:268) à hudson.plugins.git.GitSCM $ 2.invoke (GitSCM.Java:1122) à hudson.plugins.git.GitSCM $ 2.invoke (GitSCM.Java:1064) at hudson.FilePath.act (FilePath.Java:842) à hudson.FilePath.act (FilePath.Java:824) à hudson.plugins.git.GitSCM.checkout (GitSCM.Java:1064) sur hudson.model.AbstractProject.checkout (AbstractProject.Java:1256) at hudson.model.AbstractBuild $ AbstractBuildExecution.defaultCheckout (AbstractBuild.Java:589) à l'adresse jenkins.scm.SCMCheckoutStrategy.checkout (SCMCheckoutStrategy.Java:88) at hudson.model.AbstractBuild $ AbstractBuildExecution.run (AbstractBuild.Java:494) à hudson.model.Run.execute (Run.Java:1502) à hudson.maven.MavenModuleSetBuild.run (MavenModuleSetBuild.Java:477) sur hudson.model.ResourceController.execute (ResourceController.Java:88) à hudson.model.Executor.run (Executor.Java:236) Causée par: hudson.plugins.git.GitException: erreur lors de l'exécution de la commande: clone -o RVL.myProj [email protected]: myORG/RVL.myProj.git /var/lib/jenkins/jobs/myProj/workspace à l'adresse hudson.plugins.git.GitAPI.launchCommandIn (GitAPI.Java:862) à hudson.plugins.git.GitAPI.access $ 000 (GitAPI.Java:40) à hudson.plugins.git.GitAPI $ 1.invoke (GitAPI.Java:264) à hudson.plugins.git.GitAPI $ 1.invoke (GitAPI.Java:244) at hudson.FilePath.act (FilePath.Java:842) à hudson.FilePath.act (FilePath.Java:824) sur hudson.plugins.git.GitAPI.clone (GitAPI.Java:244) ... 13 autres Causée par: Java.io.IOException: impossible d'exécuter le programme "" : erreur = 2, aucun fichier ou répertoire de ce type sur Java.lang.ProcessBuilder.start (Source inconnue) à hudson.Proc $ LocalProc. (Proc.Java:244) à hudson.Proc $ LocalProc. (Proc.Java:216) sur hudson.Launcher $ LocalLauncher.launch (Launcher.Java:709) at hudson.Launcher $ ProcStarter.start (Launcher.Java:338) at hudson.Launcher $ ProcStarter.join (Launcher.Java:345) à l'adresse hudson.plugins.git.GitAPI.launchCommandIn (GitAPI.Java:843) ... 19 autres Causée par: Java.io.IOException: error = 2, aucun fichier ou répertoire de ce type à Java.lang.UNIXProcess.forkAndExec (méthode native) à Java.lang.UNIXProcess. (Source inconnue) à Java.lang.Pro

25
Sagar

J'ai rencontré et résolu le même problème :)

Il y a deux façons de configurer le chemin de git:

  1. Sur Jenkins Master

    une. Entrez Jenkins System Configure (Jenkins -> Gérer Jenkins -> Configurer le système)

    b. Recherchez l'élément Git et configurez l'installation de git (spécifiez le chemin d'accès sur git maître Jenkins)

  2. Sur Jenkins Slave

    une. Entrez Jenkins Slave's Configure

    b. Cochez la case "Emplacements des outils" et spécifiez le chemin de git sur l'esclave Jenkins.

Dans ma situation, je n'ai pas le privilège d'accéder au maître Jenkins. J'installe donc le git sur l'esclave Jenkins et l'ajoute à la configuration de Jenkins Slave. 

48
superlee

Cela semble être un bogue, voir JENKINS-16523 où j'ai posté une solution de contournement.

3
Martin

Je suis passé par le même problème.

J'ai remarqué le mélange de configuration git dans des travaux individuels "/var/lib/jenkins/jobs/job_name/config.xml":

[[email protected] jobs]# find . -maxdepth 2 -name     config.xml|xargs grep '<gitTool>'
./job1/config.xml:    <gitTool>git</gitTool>
./job2/config.xml:    <gitTool>Default</gitTool>
./job3/config.xml:    <gitTool>git</gitTool>
./job4/config.xml:    <gitTool>Default</gitTool>

J'ai donc corrigé le nom de gitTool et redémarré Jenkins. Il semble que la configuration de git ne fonctionne pas correctement et que le changement de git ne soit pas propagé à tous les travaux.

Sachez également que la configuration de git peut différer dans le fichier .xml avec la configuration et la configuration dans la face web du Jenkins !!!

2
kayn

Cela pourrait arriver pour diverses raisons.

  1. Vous n'avez peut-être pas installé Git
  2. Jenkins n'est pas capable d'utiliser le binaire git
  3. Problème de permission.

Ce blog, Erreur Jenkins Git Clone , explique tous les scénarios de cette erreur et sa solution.

0
Bibin Wilson

J'ai rencontré le même problème après avoir créé une nouvelle variable JOB et corrigé le nom de l'esclave (avec GIT installé) dans Label Expression sous Restrict where this project can be run.

0
Arpit
  1. Exécuter git --version sur maître ou esclave
  2. Si vous n'obtenez rien, cela signifie que Git n'est pas installé
  3. Si vous pensez que Git est installé, ajoutez le chemin de l'exécutable Git (par exemple, C:\Program Files\Git\cmd) à la variable d'environnement PATH.
  4. Exécutez git --version sur Master ou Slave et assurez-vous d’obtenir la version valide
0
Ritesh

À l'exception de l'étape indiquée par superlee, vous devez configurer les propriétés de votre nœud pour votre serveur, l'emplacement des outils si votre système local est Windows, reportez-vous à la capture d'écran ci-dessous:

emplacement de l'outil pour votre côté serveur

0
Hailin Tan