El trabajo de artefacto de liberación de Jenkins que se ejecuta en Windows falla en el command de inserción de Git

Estoy creando un trabajo de Jenkins en Windows para automatizar el process de lanzamiento. Por lo tanto, estoy usando el complemento de lanzamiento de Maven.

Cuando realizo una versión de Perform Maven en el trabajo, me pide el inicio de session de SCM, el Prefijo de comentario SCM y la label SCM. Pero el trabajo falla al hacer un git push para confirmar los cambios con los siguientes loggings.

[INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git commit --verbose -FC:\windows\TEMP\maven-scm-1948138390.commit pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git push git@github.com:elizabetht/StudentEnrollmentWithREST.git master:master" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2:03.980s [INFO] Finished at: Mon Feb 03 14:29:30 CST 2014 [INFO] Final Memory: 9M/21M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release- plugin:2.2.2:prepare (default-cli) on project StudentEnrollmentWithREST: Unable to commit files [ERROR] Provider message: [ERROR] The git-push command failed. [ERROR] Command output: [JENKINS] Archiving C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts\pom.xml to com.github.elizabetht/StudentEnrollmentWithREST/1.3-SNAPSHOT/StudentEnrollmentWithREST-1.3-SNAPSHOT.pom [ERROR] Permission denied (publickey). [ERROR] fatal: Could not read from remote repository. [ERROR] [ERROR] Please make sure you have the correct access rights [ERROR] and the repository exists. [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException channel stopped Finished: FAILURE 

Creo que este error tiene que ver con ejecutar un agente ssh para el trabajo de Jenkins. Seguí la solución dada en la pregunta de stackoverflow Maven – Error Releasing Code a GitHub (Hangs After Push) y el git push funciona bien en un terminal.

La configuration de los parameters de SCM en pom.xml es la siguiente

 <scm> <connection>scm:git:git@github.com:elizabetht/StudentEnrollmentWithREST.git</connection> <developerConnection>scm:git:git@github.com:elizabetht/StudentEnrollmentWithREST.git</developerConnection> <url>http://github.com/elizabetht/StudentEnrollmentWithREST</url> </scm> 

La salida de mvn scm: validate es la siguiente

 $ mvn scm:validate [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building StudentEnrollmentWithREST 1.3-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-scm-plugin:1.9:validate (default-cli) @ StudentEnrollmentWithREST >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven) @ StudentEnrollmentWithREST --- [INFO] [INFO] <<< maven-scm-plugin:1.9:validate (default-cli) @ StudentEnrollmentWithREST <<< [INFO] [INFO] --- maven-scm-plugin:1.9:validate (default-cli) @ StudentEnrollmentWithREST --- [INFO] connectionUrl scm connection string is valid. [INFO] project.scm.connection scm connection string is valid. [INFO] project.scm.developerConnection scm connection string is valid. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.325s [INFO] Finished at: Tue Feb 04 18:06:04 CST 2014 [INFO] Final Memory: 14M/309M [INFO] ------------------------------------------------------------------------ 

Agregar la salida de 'ssh -vT git@github.com'

 C:\Users\Sara>ssh -vT git@github.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Connecting to github.com [192.30.252.131] port 22. debug1: Connection established. debug1: identity file /c/Users/Sara/.ssh/identity type -1 debug1: identity file /c/Users/Sara/.ssh/id_rsa type 1 debug1: identity file /c/Users/Sara/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version Ope n-5ubuntu1+github5 debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1+github5 pat OpenSSH debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /c/Users/Sara/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /c/Users/Sara/.ssh/identity debug1: Offering public key: /c/Users/Sara/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 277 debug1: read PEM private key done: type RSA debug1: Authentication succeeded (publickey). debug1: channel 0: new [client-session] debug1: Entering interactive session. debug1: Remote: Forced command. debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Remote: Forced command. debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: client_input_channel_req: channel 0 rtype exit-status re Hi elizabetht! You've successfully authenticated, but GitHub doe ell access. debug1: channel 0: free: client-session, nchannels 1 debug1: Transfernetworking: stdin 0, stdout 0, stderr 0 bytes in 0.1 se debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 0.0 debug1: Exit status 1 

¿Alguien podría ayudar con los indicadores sobre cómo hacer que esto funcione como un trabajo de Jenkins en Windows?

Para agregar a la respuesta http://sofes.miximages.com/a/21568234/2748399 , siempre verifique los loggings de jenkins para get un error más detallado. Gracias Elizabeth ( http://sofes.miximages.com/users/2997040/elizabetht ) por mencionarme en la publicación!

Seguí la solución, encontrada por @Saravana Kumar Periyasamy dada bajo el tema 'Posibles problemas entre Jenkins y Github' desde el enlace https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin

Obligado a los Jenkins a ejecutar como el usuario que tiene configurada la key SSH, cargada la key SSH generada sin contraseña y viola, realicé mi exitosa versión de Maven usando Jenkins (¡Después de 116 bashs para descubrir la configuration correcta con este trabajo de Jenkins!)

Aquí está el resultado de la console

 [INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git commit --verbose -FC:\Users\Sara\AppData\Local\Temp\maven-scm-170370981.commit pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git push git@github.com:elizabetht/StudentEnrollmentWithREST.git master:master" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Tagging release with the label StudentEnrollmentWithREST-1.3... [INFO] Executing: cmd.exe /X /C "git tag -FC:\Users\Sara\AppData\Local\Temp\maven-scm-1647501295.commit StudentEnrollmentWithREST-1.3" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git push git@github.com:elizabetht/StudentEnrollmentWithREST.git StudentEnrollmentWithREST-1.3" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git ls-files" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Transforming 'StudentEnrollmentWithREST'... [INFO] Not removing release POMs [INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git commit --verbose -FC:\Users\Sara\AppData\Local\Temp\maven-scm-890096458.commit pom.xml" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Executing: cmd.exe /X /C "git push git@github.com:elizabetht/StudentEnrollmentWithREST.git master:master" [INFO] Working directory: C:\Program Files (x86)\Jenkins\workspace\Upload REST Release Artifacts [INFO] Release preparation complete. 

Y luego el trabajo procedió a cargar mis artefactos a mi repository de versiones.

Los elementos en pom.xml son los siguientes (esto funcionó)

 <scm> <connection>scm:git:git@github.com:user/repo-name.git</connection> <developerConnection>scm:git:git@github.com:user/repo-name.git</developerConnection> <url>git@github.com:user/repo-name.git</url> <tag>HEAD</tag> </scm> 

En mi configuration de trabajo de Jenkins, especifiqué la URL del repository en el siguiente formatting

 git@github.com:user/repo-name.git 

en lugar de usar https://github.com/user/reponame.git

Todos los pasos que seguí para get la versión de Maven a través de Jenkins están disponibles en http://elizabetht.github.io/blog/2014/02/05/jenkins-release-upload/