trigger plugin gitscm for jenkins maven-2

plugin - Tiempo de espera de Jenkins mientras se obtiene de Github en 10 minutos.



github hook trigger for gitscm polling (6)

Me he quedado con este problema al configurar Jenkins para la compilación Nightly. Tenga en cuenta que el proyecto de repositorio "project1" es grande y tiene unos 900 MB. Por favor, hágame saber cómo debo solucionar este problema.

Started by user anonymous Building in workspace C:/Users/user1/.jenkins/jobs/Nightly Build/workspace Fetching changes from the remote Git repository Fetching upstream changes from [email protected]:MyOrg/projectgroup/project1 ERROR: Timeout after 10 minutes FATAL: Failed to fetch from [email protected]:MyOrg/projectgroup/project1 hudson.plugins.git.GitException: Failed to fetch from [email protected]:MyOrg/projectgroup/project1 at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:612) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:836) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:861) at hudson.model.AbstractProject.checkout(AbstractProject.java:1412) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557) at hudson.model.Run.execute(Run.java:1679) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:509) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230) Caused by: hudson.plugins.git.GitException: Command "fetch -t [email protected]:MyOrg/projectgroup/project1 +refs/heads/*:refs/remotes/origin/*" returned status code -1: stdout: stderr: at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:981) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:920) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.fetch(CliGitAPIImpl.java:187) at hudson.plugins.git.GitAPI.fetch(GitAPI.java:229) at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:610) ... 10 more


Acabo de encontrar la solución para jenkins timout # 10 min errors. Este error se produjo debido a la baja conexión a Internet o puede ser el tamaño de su proyecto en github es grande, por lo que jenkins no puede cargar ese proyecto desde el servidor git. Para resolver el problema tenemos que editar "comportamientos adicionales" en Git en el proyecto jenkins configuración y aumentar el "Tiempo de espera (en minutos) para las operaciones de clonación y recuperación" a "60" o "120" minutos. Entonces, cada vez que jenkins clona el proyecto git desde el servidor git, es suficiente tiempo para cargar / clonar un proyecto desde el servidor git.


En Ubuntu 14.04 lts

Ir a / etc / default / jenkins editar con vi o gedit

actualizar orgs java como a continuación

Antes de la actualización, será como JAVA_ARGS = "- Djava.awt.headless = true"

Actualizar como a continuación JAVA_ARGS = "- Djava.awt.headless = true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut = 30"

y reiniciar jenkins como

sudo /etc/init.d/jenkins start


Estaba a punto de usar la Solución 2, pero parece que a partir de la versión 2.0.3 de git esto ahora se puede configurar en la interfaz de usuario, aunque está un poco escondido y es por proyecto.

Vaya a la pantalla de configuración para un proyecto, sección Gestión de código fuente, Git, Comportamientos adicionales, Agregar, Comportamientos de clonación avanzados, Tiempo de espera (en minutos) para la operación de copia y recuperación.

Usaría la solución # 2 como lo sugiere DevHopeful_2012 si desea una configuración global.


La solución # 2 funcionó para mí, tuve que cambiar el archivo jenkins.xml.

En Windows:

  1. Vaya a C:/Program Files (x86)/Jenkins
  2. abra el archivo jenkins.xml
  3. agregar -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60 dentro de la etiqueta <arguments>

Así es como se ve mi configuración

Antes de:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%/jenkins.war" --httpPort=8080 --webroot="%BASE%/war"</arguments>

Después:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60 -jar "%BASE%/jenkins.war" --httpPort=8080 --webroot="%BASE%/war"</arguments>


Parece que este es un problema conocido. Consulte JENKINS-20445 , JENKINS-20387 y muchos otros problemas que parecen estar apareciendo.

De acuerdo con estos informes de errores, esto solo ocurre en la versión más nueva del complemento de Git, por lo que puedes cambiar de versión o probar algunas soluciones:

Solución # 1: cree un clon de referencia local para reducir el tiempo, como se indica here .

Si solo tiene un rendimiento de 30 kb / segundo de Jenkins en su repositorio git, probablemente debería considerar clonar una copia vacía del repositorio en la ubicación central en el servidor Jenkins, luego realice el clon con el "Comportamiento clónico avanzado" para usar una referencia repositorio. Eso reducirá significativamente la cantidad de datos transferidos desde el servidor de git a Jenkins.

En mi máquina Debian Jenkins, hago eso con:

$ sudo mkdir -p /var/cache/git/mwaite $ sudo chown mwaite.mwaite /var/cache/git/mwaite $ cd /var/cache/git/mwaite $ git clone --bare https://github.com/jenkinsci/jenkins.git

Después de que el clon desnudo esté disponible en la máquina Jenkins, agregue ese comportamiento avanzado al trabajo y debería funcionar mucho mejor.

Solución temporal n.º 2: aumente el tiempo de espera para permitir que se complete el proceso de clonación inicial largo, utilizando la propiedad Git.timeOut :

java -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60 -jar jenkins.war

Esta pregunta SO es un buen ejemplo de cómo establecer propiedades para el servicio Jenkins. Además, tenga en cuenta que este valor está en minutos y no en segundos. Esta solución es cortesía de David .

La última solución funcionó para mí. Aunque debo admitir que prefiero usar el repositorio de referencia, pero no creo que funcione con un trabajo de multiconfiguración, como el mío. Y, se advirtió que era sorprendentemente doloroso establecer una propiedad para cada nodo esclavo y luego documentar internamente que tenemos que configurar esto en todos los nodos, utilizando grandes repositorios Git, en el futuro.


WINDOWS SOLAMENTE

Existe la posibilidad de que su conexión ssh no esté configurada correctamente. Si la conexión ssh a su repositorio git no está establecida, la compilación de Jenkins puede aparecer como colgada y eventualmente expirar.

De forma predeterminada, el instalador de Jenkins configura Jenkins para que se ejecute como un servicio, que se ejecuta como la "Cuenta del sistema local", NO su cuenta de usuario. Como la "cuenta del sistema local" no tiene configuradas las claves SSH o los conocidos, se producirá un error en "clonar git".

Puede copiar C: / Archivos de programa (x86) / Git / .ssh en C: / Windows / SysWOW64 / config / systemprofile / .ssh (la cuenta de la "cuenta del sistema local")

También,

IMPORTANTE: ¡asegúrese de que sus claves ssh NO tengan una contraseña! Jenkins parecerá bloqueado al clonar el repositorio, pero realmente está bloqueando ssh en el fondo esperando que ingreses tu contraseña.

Pasos detallados en http://computercamp-cdwilson-us.tumblr.com/post/48589650930/jenkins-git-clone-via-ssh-on-windows-7-x64