remote plugin performing for failed error configurar con git jenkins jenkins-plugins

git - performing - plugins jenkins io



Jenkins Git plugin con https (11)

Este es un error en el plugin Jenkins Git .

Puede solucionar el problema de credenciales creando credenciales utilizando el complemento de credenciales y luego use estas credenciales en la sección SCM / Git de su trabajo. Sin embargo, esto expondrá su usuario / contraseña en texto plano en el registro de compilación si el proceso de pago falla.

Además, esto no funcionará si está utilizando un proxy HTTP con git. La mejor manera (por ahora) es usar JGit (para ser configurado en la configuración de Jenkins). Sin embargo, JGit es experimental y muy limitado también cuando se trata de proxies.

(respuesta publicada debido a una solicitud popular;))

Estoy intentando configurar un proyecto de Git en Jenkins usando el plugin de Git. En la página de configuración del proyecto, ingreso la URL del repositorio en la configuración de Git, que es una URL https ( https://git.mycompany.com/git/MyProject.git ). Cuando estoy construyendo el proyecto, sin embargo, aparece el siguiente error:

Started by user Hudson Administrator [EnvInject] - Loading node environment variables. Building in workspace /home/hudson/.hudson/jobs/MyProject/workspace Checkout:workspace / /home/hudson/.hudson/jobs/MyProject/workspace - hudson.remoting.LocalChannel@3699cfcc Using strategy: Default Cloning the remote Git repository Cloning repository https://git.mycompany.com/git/MyProject.git git --version git version 1.8.2.1 ERROR: Error cloning remote repo ''origin'' : Could not clone https://git.mycompany.com/git/MyProject.git hudson.plugins.git.GitException: Could not clone https://git.mycompany.com/git/MyProject.git at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:286) at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.clone(AbstractGitAPIImpl.java:59) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.clone(CliGitAPIImpl.java:47) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1012) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948) at hudson.FilePath.act(FilePath.java:912) at hudson.FilePath.act(FilePath.java:885) at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:948) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1114) at hudson.model.AbstractProject.checkout(AbstractProject.java:1411) 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:1665) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:507) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230) Caused by: hudson.plugins.git.GitException: Failed to connect to https://git.mycompany.com/git/MyProject.git at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getURLWithCrendentials(CliGitAPIImpl.java:1374) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getURLWithCrendentials(CliGitAPIImpl.java:1326) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:47) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:280) ... 16 more Trying next repository ERROR: Could not clone repository java.io.IOException: Could not clone at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1025) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948) at hudson.FilePath.act(FilePath.java:912) at hudson.FilePath.act(FilePath.java:885) at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:948) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1114) at hudson.model.AbstractProject.checkout(AbstractProject.java:1411) 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:1665) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:507) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230)

Puedo clonar el repositorio desde la línea de comando, así como ejecutar git clone como un comando de shell en los pasos de precompilación del proyecto Jenkins, por lo que no entiendo por qué la configuración del complemento no funciona. Pensando que podría tratarse de un problema de autenticación, intenté especificar las credenciales en un archivo .netrc y también incluirlas en la URL (es decir, https: // nombre de usuario: contraseñ[email protected]/git/MyProject.git ), sin embargo, en En todos los casos, sigo teniendo el mismo error. ¿Algunas ideas?


La página principal del plugin git tiene esto que decir:

Si está viendo una salida que indica que Git no pudo clonar, algo como el resultado a continuación, vaya a la configuración de Jenkins (no a la configuración del proyecto, a las globales) y cambie la ruta de Git a una ruta completamente calificada (por ejemplo, no "git"). "pero" / usr / bin / git "o donde esté instalado su binario Git). También debe verificar que los permisos sean correctos si está haciendo un clon basado en el sistema de archivos.

Started by user anonymous Checkout:workspace / C:/Documents and Settings/Administrator/.hudson/jobs/watir/workspace - hudson.remoting.LocalChannel@1a1f370 Last Build : #4 Checkout:workspace / C:/Documents and Settings/Administrator/.hudson/jobs/watir/workspace - hudson.remoting.LocalChannel@1a1f370 Cloning the remote Git repository Cloning repository origin $ git clone -o origin git://github.com/bret/watir.git "C:/Documents and Settings/Administrator/.hudson/jobs/watir/workspace" Trying next repository ERROR: Could not clone from a repository FATAL: Could not clone hudson.plugins.git.GitException: Could not clone at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:400) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:358) at hudson.FilePath.act(FilePath.java:676) at hudson.FilePath.act(FilePath.java:660) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:358) at hudson.model.AbstractProject.checkout(AbstractProject.java:833) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:314) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:266) at hudson.model.Run.run(Run.java:948) at hudson.model.Build.run(Build.java:112) at hudson.model.ResourceController.execute(ResourceController.java:93) at hudson.model.Executor.run(Executor.java:118)

Esto también podría ser un problema para ti.

La misma página también sugiere probar con JGit si hay un problema con el comportamiento del plugin predeterminado ( -Dorg.jenkinsci.plugins.gitclient.Git.useCLI=false ).


Intenté todas las cosas para deshacerme del problema del certificado, pero finalmente es un problema con el complemento git. Retrajo plugins para git 1.5 (de 2.0.3) y git-client 1.0.7 (de 1.6.3) y funcionó find. Tenga en cuenta que probé git-client 1.4.6 primero para poder usar la opción de credenciales, pero no funcionó. Entonces creo que la combinación correcta de estos 2 complementos es importante. Esta solución fue mencionada en JENKINS-20533


Para usar Git en Jenkins, los siguientes dos complementos necesitan ser instalados:

  1. Git-Client-plugin
  2. Git-plugin

El primer complemento (Git-Client-plugin) es una API de bajo nivel para ejecutar operaciones de git (git add, git commit, git push, git clone, ... etc).

El segundo complemento (Git-plugin) agrega Git como una opción SCM para trabajos de Jenkins.

El segundo complemento se basa en la funcionalidad del primer complemento, por lo que ambos deben estar presentes para que Git trabaje con Jenkins.


En mi caso, un esclavo de Jenkins trabajó normalmente, mientras que otro no. Cuando cambié el ejecutable de Git de forma predeterminada a JGit, ambos funcionaron.


Esto ahora está arreglado y no es más un problema con el complemento actualizado (ya que estoy escribiendo este 1.19.0). Sucedió con git-plugin-client 1.6.x.


usando git: // en lugar de https: // funciona para mí en jenkins 1.644 con git client 1.19.6


Puede registrar sus credenciales de git en "Credenciales" con su nombre de usuario y contraseña para acceder al repositorio de git mediante el protocolo https (debajo de "Administrar Jenkins"), se generará un ID de credencial (por ejemplo, dd0d6733-cc2e-4464-bb7d-4b6af86fe40a ) que ayuda a Jenkins a usar esta credencial en tuberías.

Cuando utiliza Jenkins Pipeline , puede hacer:

node{ git url: "https://tfs:8080/tfs/job.git", branch: "feature/migration", credentialsId:''dd0d6733-cc2e-4464-bb7d-4b6af86fe40a'' }

Descargará sus códigos fuente al espacio de trabajo del trabajo


Mi solución funcionó bien para Jenkins-Git-Plugin.

# create my exec su root fuckgit=/usr/bin/fuckgit touch $fuckgit echo "#! /usr/bin/env bash" > $fuckgit echo "git -c sslVerify=false $@" > $fuckgit

Ir a la configuración del sistema, establecer git ejecutable = /usr/bin/fuckgit

Hecho.

TODO: hermosa esta ans


En caso de que esté utilizando un certificado autofirmado para su repositorio Git y Git funcione desde la línea de comandos pero no desde el complemento Jenkins Git Client, debe agregar el certificado a Jenkins Java Keystore (como se describe por tijs en el comentario anterior ) .

Esto se debe a que el complemento de Git Client intenta conectarse directamente utilizando Apache HttpClient de Java (sin pasar por git.exe), por lo que se ignoran todas las configuraciones de Git normalmente utilizadas para crear la conexión (incluyendo GIT_SSL_NO_VERIFY y certificados en curl-ca-bundle.crt) . El HttpClient arroja SunCertPathBuilderException: unable to find valid certification path to requested target que desafortunadamente está envuelto en una GitException sin seguimiento de pila, por lo que todo lo que podemos ver es el mensaje "No se pudo conectar" .

Para solucionarlo, puede seguir el enlace provisto por tijs : http://www.mkyong.com/webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/

jssecacerts copiar el archivo jssecacerts resultante en C:/Program Files (x86)/Jenkins/jre/lib/security si está utilizando la instalación predeterminada de Jenkins.

Puede encontrar un enlace a InstallCert.java en la InstallCert.java original de Andreas Sterbenz (gracias a web.archive.org), o una versión ligeramente modificada en code.google .

Comprobé que el enfoque anterior funciona para el plugin Git Client versión 1.4.6.


Actualice su cliente Git a 2.10.0 o superior.

ejecuta debajo de los comandos.

git config --system http.sslVerify false git config --global http.sslVerify false