[vc_row][vc_column width=”2/3″][vc_single_image image=”6296″ img_size=”medium” alignment=”center”][vc_column_text]El día de hoy estuve trabajando en la configuración de un job en jenkins para automatizar algunas tareas de build y despliegue desde un repositorio git.
Dicha instalación de jenkins se está ejecutando en un equipo con Mac OS y noté algo raro.
Al hacer el fetch del repositorio, el job se quedaba en dicho paso hasta hacer un timeout y fallar la construcción.[/vc_column_text][vc_single_image image=”6303″ img_size=”large” alignment=”center” css=”.vc_custom_1553095845123{margin-top: 50px !important;margin-bottom: 50px !important;}”][vc_column_text]Investigando un poco encontré que ese comportamiento puede ser ocasionado si las credenciales no son proporcionadas de manera correcta, sin embargo, en mi caso, me aseguré de realizarlo bien, sin éxito alguno.[/vc_column_text][vc_single_image image=”6304″ img_size=”large” alignment=”center” css=”.vc_custom_1553095831257{margin-top: 50px !important;margin-bottom: 50px !important;}”][vc_column_text]Después de algunas horas encontré un workaround, el cual consiste básicamente en establecer las credenciales por defecto de git para el usuario jenkins creando un “llavero” (keychain).
Por lo cual deseo compartir dicho proceso en este artículo.
Para esto ejecutar los siguientes comandos:[/vc_column_text][vc_column_text css=”.vc_custom_1553096177514{margin-top: 50px !important;margin-bottom: 50px !important;}”]
# Iniciar sesión como usuario jenkins sudo su - jenkins # Crear el directorio en el cuál se almacenará el keychain mkdir ~jenkins/Library/Keychains # Ir al directorio creado cd ~jenkins/Library/Keychains # Crear el keychain proporcionando el password de seguridad security create-keychain -p [pwd] ./Login.keychain security login-keychain -d user -s ./Login.keychain # Ir al directorio donde se encuentra el repositorio que intentó clonar cd ~/Home/workspace/[directorio_proyecto] # Intentar el fetch que falló git fetch --tags --progress [URL_PROYECTO] +refs/heads/*:refs/remotes/origin/* |
[/vc_column_text][vc_column_text]Una vez realizados estos pasos nos solicitará el usuario y contraseña de git y después de esto, no los volverá a pedir.
Podemos proceder a ejecutar nuestro job nuevamente y realizará el fetch de manera correcta.
Se que no es la mejor solución, sin embargo, es una opción para resolver este problema.
Si alguien conoce la manera de solucionarlo directamente desde el administrador de jenkins es bienvenido a contribuir en los comentarios.
También comparto la url a stackoverflow donde encontré este workaround https://stackoverflow.com/questions/42627269/jenkins-using-git-askpass-to-set-credentials[/vc_column_text][/vc_column][vc_column width=”1/3″][/vc_column][/vc_row]