configuration mercurial hudson jenkins

configuration - Cómo configurar Autorización Hudson/Jenkins para clonar su depósito mercurial



(5)

Después de instalar y jugar con mercurial, estoy intentando que Hudson clone el repositorio para que pueda construir mi proyecto.

Por el momento, la siguiente tarea funciona.

  • Puedo sincronizar con mi host externo y el código aparece en ese host.

Ahora estoy intentando configurar hudson / jenkins para acceder al código en mi host.

Pero desafortunadamente estoy rodando en un error:

Started by user anonymous $ hg clone --rev default https://bitbucket.org/*/testproject "F:/Hudson/jobs/testproject/workspace" abort: http authorization required ERROR: Failed to clone https://bitbucket.org/*/testproject [workspace] $ hg log --rev . --template {node} java.io.IOException: Cannot run program "hg" (in directory "F:/Hudson/jobs/testproject/workspace"): CreateProcess error=267, The directory name is invalid at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) at hudson.Proc$LocalProc.<init>(Proc.java:244) at hudson.Proc$LocalProc.<init>(Proc.java:216) at hudson.Launcher$LocalLauncher.launch(Launcher.java:698) at hudson.Launcher$ProcStarter.start(Launcher.java:329) at hudson.Launcher$ProcStarter.join(Launcher.java:336) at hudson.plugins.mercurial.MercurialSCM.joinWithPossibleTimeout(MercurialSCM.java:298) at hudson.plugins.mercurial.HgExe.popen(HgExe.java:191) at hudson.plugins.mercurial.HgExe.tip(HgExe.java:171) at hudson.plugins.mercurial.MercurialSCM.calcRevisionsFromBuild(MercurialSCM.java:254) at hudson.scm.SCM._calcRevisionsFromBuild(SCM.java:304) at hudson.model.AbstractProject.calcPollingBaseline(AbstractProject.java:1186) at hudson.model.AbstractProject.checkout(AbstractProject.java:1175) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:523) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:418) at hudson.model.Run.run(Run.java:1362) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:145) Caused by: java.io.IOException: CreateProcess error=267, The directory name is invalid at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) at java.lang.ProcessImpl.start(ProcessImpl.java:30) at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 18 more Finished: FAILURE

¿Qué acciones debo hacer para decirle a Hudson que use el nombre de usuario x y la contraseña y para acceder a los datos?

Edited => Encontré cómo integrar ssh.


Creo que el problema no está relacionado con el nombre de usuario y la contraseña. Su stacktrace le dice que hay algo mal con la ruta F:/Hudson/jobs/testproject/workspace .

No se puede ejecutar el programa hg (en el directorio "F: / Hudson / jobs / testproject / workspace")

El nombre del directorio no es válido

De todos modos, puede especificar el nombre de usuario y la contraseña en la URL como: http://user:[email protected] .


Para autenticar el complemento Jenkins / Hudson Mercurial con BitBucket, también me pareció útil utilizar el protocolo SSH en lugar de HTTPS, en particular porque:

  1. no parece haber una manera de almacenar sus credenciales HTTPS en BitBucket con el complemento Mercurial Jenkins, pero con SSH puede almacenar sus credenciales de manera segura.

  2. con SSH puede configurarlo para usar compresión, lo que Mercurial no hace de forma nativa.

Las buenas instrucciones para configurar el acceso SSH a BitBucket están disponibles aquí: http://confluence.atlassian.com/display/BITBUCKET/Using+SSH+to+Access+your+Bitbucket+Repository

Notas:

  • Si está ejecutando Jenkins / Hudson en un servidor * nix, querrá iniciar sesión como el usuario que ejecuta el proceso de Jenkins y realizar estas operaciones desde el directorio de inicio de ese usuario, para que el usuario pueda encontrar las configuraciones (por ejemplo, en mi servidor Debian instalación de Jenkins independiente, se crea el usuario ''jenkins'' y el directorio de inicio se establece en ''/ var / lib / jenkins'' [ not / home / jenkins] - donde realicé las instrucciones provistas en el enlace de arriba).

  • Me pareció muy útil asegurarme de que el comando de clonación de hg funcionaba desde la línea de comando antes de intentar que Jenkins lo llamara.

  • IMPORTANTE: Para que esto funcione, tuve que generar una clave ** sin ** una frase de contraseña.


Puede agregar las siguientes líneas al archivo jenkins .hgrc (generalmente /var/lib/jenkins/.hgrc)

[auth] bitbucket.prefix = https://bitbucket.org/your_user/... bitbucket.username = your_user bitbucket.password = ******

Ver http://www.selenic.com/mercurial/hgrc.5.html#auth


Puede agregar sus credenciales scm en la sección ''Credenciales'' de Jenkins:

También cambie la configuración del trabajo para usar las credenciales:


Utiliza SSH en lugar de https

Descargue putty.exe, puttygen.exe, pageant.exe y plink.exe desde el sitio web PuTTY. Comience a puttygen y genere una clave en OPENSSH FORMAT (formato hudsons) (=> Cómo usar Svn + SSH )

Haga clic en el botón Guardar clave privada y guarde el archivo .PPK en algún lugar. Haga clic en el botón Guardar clave pública y guárdelo.

Vaya a su sitio web e ingrese el ssh-key público

Ejecute pageant.exe. El ícono del desfile (una computadora con sombrero) aparecerá en la bandeja de estado.

Haga clic con el botón derecho en el icono del concurso y elija Agregar clave. Elija el archivo .PPK que guardó anteriormente y escriba su frase de contraseña.

La siguiente (parte final está copiada) de Ted Naleid (¡Gracias!) La bruja del blog se puede encontrar aquí: Conectando hudson a tu ...

Instala el plugin Mercurial en Hudson

Todo lo que queda por hacer ahora es instalar el complemento Mercurial en Hudson. En un navegador, vaya a http: // INSERT_YOUR_IP_HERE: 8080 . Hudson debería aparecer.

Haga clic en "Administrar Hudson" y vaya a "Administrar complementos". Vaya a la pestaña "Disponible", marque "Hudson Mercurial plugin" y presione el botón "Instalar". Hudson le pedirá que reinicie y luego estará instalado.

Después de eso, solo crea un nuevo trabajo y tendrás una nueva opción "mercurial" en la sección "administración de control de origen". Seleccione eso y ponga la URL de ssh en el campo "URL de repositorio". Luego ponga "default" en el campo "branch" y configure el resto del trabajo para construir / probar su código (un ejercicio dejado al lector).

¡y aquí es la primera construcción exitosa!

Conclusión: este es un resumen de todos los pequeños blogs esparcidos por Internet. Espero que esta publicación te ayude a comenzar hudson y mercurial.