Jenkins con Tomcat: error al conectarse al repository: no se pudo iniciar

Problema:

  • He configurado Jenkins v1.605 alojado con Apache Tomcat 7.0.59 en Windows 7 SP1 x64 detrás de un corporate proxy

  • Configuré las routes de installation de JDK, Git y Maven en Jenkins. También configuró el proxy en la pestaña Avanzado en Administrar complementos

  • Tengo un proyecto de Java en Eclipse que he alojado en un repository de Bitbucket utilizando el plugin de EGit y estoy tratando de conectarlo a Jenkins sobre https

  • Creé un nuevo trabajo en Jenkins, agregué el URL del repository (https: //@bitbucket.org//.git) y agregué mis cnetworkingenciales en el siguiente paso. Aquí es donde obtengo el siguiente error:

Failed to connect to repository : Could not init D:\Work\apache-tomcat-7.0.59\temp\hudson4595160075978517187tmp

Lo que he intentado:

Revisé ~ 20 preguntas de SO y muchos otros sitios web en los últimos dos días e implementé soluciones que otros encontraron útiles, pero fueron en vano. Esto es lo que he intentado:

  • Intenté clonar el repository de Git Bash después de configurar el proxy http / https en git (de esta respuesta y este problema). El repository se clonó con éxito, pero Jenkins no pudo conectarse.

  • Comprobé dos veces la configuration de la ruta de installation de git en Jenkins ( esta y muchas otras respuestas)

  • Reduje los complementos de git y git cliente de las últimas versiones a 1.5.0 y 1.0.7 respectivamente (de esta y muchas otras respuestas). Después de esto, ingresé la URL con mis cnetworkingenciales ( esta respuesta), pero obtuve el mismo resultado. Después de esto, volví a las últimas versiones.

  • Intenté conectarme a un repository de GitHub, pero tuve el mismo problema

  • Intenté ingresar la URL del repository en varios formattings ( esta y esta respuesta)

  • Limpié la carpeta temp de Tomcat y relancé Jenkins con Tomcat ( esta respuesta), pero no resolvió el problema

¿Puede alguien decirme por favor si me falta algo aquí? ¿Debo realizar algunos otros pasos mientras trabajo detrás de un proxy? ¿O es algún otro problema?

Esta es mi primera incursión en CI así que por favor, perdónenme si sueno como un novato.

Tuve este problema e investigué qué está sucediendo en el server usando Process Monitor. Encontré este error en particular que ayudó a identificar el problema:

 java.exe CreateFile C:\Users\...\AppData\Local\GitHub\PortableGit_blabla\cmd init C:\Users\...\AppData\Local\Temp\hudsonblablatmp NAME INVALID 

Copiar y pegar el command en una window de cmd aparece cuando C:\... is not recognized as an internal or external command... error.

Lo que ocurre es que Jenkins está intentando ejecutar el command git init en una carpeta temporal. Pero noté que no hay ejecutable git delante de la opción init en el command problemático en el server, lo que me convierte en la configuration Path to Git executable en la configuration de Jenkins. Lo había configurado como se ve arriba ( C:\...\cmd ) pero lo traté como una ruta simple (es decir, cadena de carpetas) y no especificó el ejecutable. Resulta que Jenkins solo está obteniendo ese valor y lo usa como una ruta de acceso absoluta a un ejecutable. Así que lo solucioné añadiéndole \git.exe y voilà!

tl; dr

Asegúrese de que el Path to Git executable en las configuraciones de Jenkins sea la ruta absoluta al ejecutable, con el ejecutable presente en la ruta:

por ejemplo, c:\Users\User\AppData\Local\GitHub\PortableGit_<guid>\cmd\git.exe

Este error se debe a la falta de disponibilidad de Git en el server. Esto se puede solucionar instalando Git en el server de Jenkins.

 yum install -y git 

Tuve un problema similar, como @balan mencionado anteriormente, fue la falta de disponibilidad de git en el server de CI. trabajó para mi

 $sudo apt-get update $sudo apt-get install git 

El error original que obtenía en Jenkins -> MyProjectName -> Configurar -> Source Code Management = enter image description here

La solución = https://support.cloudbees.com/hc/en-us/articles/218156697-Git-Failed-to-connect-to-repository-Open-init-tit-tmp