Integración de Jenkins con el Control de Versiones (Git)

JenkinsBeginner
Practicar Ahora

Introducción

Bienvenido a este laboratorio sobre la integración de Jenkins con Git. La Gestión del Control de Versiones (SCM, por sus siglas en inglés) es un pilar fundamental del desarrollo de software moderno. Integrar su servidor de Integración Continua (CI), como Jenkins, con un sistema SCM como Git es un paso esencial para automatizar sus procesos de compilación y prueba.

En este laboratorio, aprenderá a:

  • Verificar que el plugin de Git para Jenkins esté disponible.
  • Crear un proyecto Freestyle vinculado a un repositorio Git local.
  • Añadir un paso de compilación para ejecutar un script desde el repositorio.
  • Ejecutar una compilación manualmente para probar la configuración.
  • Configurar el sondeo de SCM (SCM polling) para activar compilaciones automáticamente ante nuevos commits.

Una instancia de Jenkins y un pequeño repositorio Git local ya están preparados para este laboratorio. Puede acceder a la interfaz web de Jenkins abriendo el navegador Firefox en el escritorio. El navegador se abrirá automáticamente en http://localhost:8080, por lo que no necesita ingresar la URL manualmente. No se requiere inicio de sesión.

Verificar el plugin de Git

Jenkins utiliza plugins para añadir integraciones. El plugin de Git proporciona la opción Git que utilizará en la configuración del trabajo.

  1. Abra el navegador Firefox desde la interfaz del escritorio. El navegador se abrirá automáticamente en http://localhost:8080, por lo que no necesita ingresar la URL manualmente. No se requiere inicio de sesión.
  2. En el panel de control (dashboard) de Jenkins, haga clic en el icono de engranaje en la esquina superior derecha para abrir Manage Jenkins.
  3. Haga clic en Plugins.
  4. Seleccione la pestaña Installed plugins.
  5. En el cuadro de filtro, escriba git.
  6. Confirme que Git aparece en la lista de plugins instalados.

Plugin de Git instalado

Una vez confirmado el plugin de Git, puede crear un proyecto que extraiga el código fuente de un repositorio.

Crear un proyecto y configurar Git SCM

Con el plugin de Git instalado, ahora puede crear un proyecto de Jenkins y configurarlo para extraer el código fuente del repositorio local preparado en el contenedor de Jenkins.

  1. Regrese al panel de control principal de Jenkins haciendo clic en el enlace Dashboard en la navegación de migas de pan (breadcrumb) en la parte superior izquierda.
  2. Haga clic en New Item en la barra lateral izquierda.
  3. Ingrese git-integration-project como nombre del elemento.
  4. Seleccione Freestyle project.
  5. Haga clic en OK.

Esto le llevará a la página de configuración del proyecto.

  1. Desplácese hacia abajo hasta la sección Source Code Management.
  2. Seleccione la opción Git. Si no ve esta opción, verifique que el plugin de Git se haya instalado correctamente en el paso anterior.
  3. En el campo Repository URL, ingrese la URL del repositorio local preparada para este laboratorio:
git://localhost/git-playground.git
  1. Deje el Branch Specifier con el valor predeterminado, */master. Esto le indica a Jenkins que utilice la rama master.
  2. Haga clic en el botón Save en la parte inferior de la página.

Configuración de Git SCM

Ha creado con éxito un trabajo de Jenkins vinculado a un repositorio Git local. En el siguiente paso, definirá qué debe hacer el trabajo con el código extraído.

Añadir un paso de compilación y ejecutar una compilación manual

Ahora que Jenkins sabe dónde obtener el código, necesita indicarle qué hacer con él. Añadirá un paso de compilación con comandos de shell y luego ejecutará una compilación manualmente para probarlo.

  1. En la página del proyecto git-integration-project, haga clic en Configure en la barra lateral izquierda.
  2. Desplácese hacia abajo hasta la sección Build Steps.
  3. Haga clic en el menú desplegable Add build step y seleccione Execute shell.
  4. En el área de texto Command, ingrese los siguientes comandos de compilación:
echo "Building from the Git repository"
./build.sh

Cuando se ejecute el trabajo, Jenkins primero clonará el repositorio Git en su espacio de trabajo y luego ejecutará estos comandos desde dicho espacio. El script build.sh proviene del repositorio, por lo que una ejecución exitosa demuestra que Jenkins extrajo el código antes de ejecutar el paso de shell.

  1. Haga clic en Save.
  2. Ahora está de vuelta en la página del proyecto. Haga clic en Build Now en la barra lateral izquierda para iniciar una compilación.

Aparecerá una nueva compilación en el panel Build History. Espere a que se complete (el icono de estado se volverá azul si es exitoso).

  1. Haga clic en el número de compilación (por ejemplo, #1).
  2. Haga clic en Console Output en el menú de la compilación.

Compilación de Git exitosa

Debería ver una salida que confirme que Jenkins clonó el repositorio y ejecutó sus comandos correctamente.

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building from the Git repository
Building from the Git repository
+ ./build.sh
Repository build script running
Workspace: /var/jenkins_home/workspace/git-integration-project
README.md
build.sh
Finished: SUCCESS

Habilitar compilaciones automáticas con sondeo de SCM

Ejecutar compilaciones manualmente es útil para realizar pruebas, pero el verdadero poder de la CI es la automatización. En este paso, configurará Jenkins para que sondee el repositorio Git en busca de cambios.

  1. Navegue de regreso a la página de configuración de git-integration-project (Página del proyecto > Configure).
  2. Desplácese hacia abajo hasta la sección Build Triggers.
  3. Marque la casilla junto a Poll SCM.
  4. Aparecerá un cuadro de texto Schedule. Esto utiliza la sintaxis cron para definir con qué frecuencia Jenkins debe verificar si hay cambios en el repositorio. Para realizar el sondeo cada minuto, ingrese lo siguiente:
* * * * *
  1. Haga clic en Save.

La programación se guarda con la configuración del trabajo. Jenkins ahora verificará el repositorio configurado una vez por minuto e iniciará una nueva compilación cuando detecte un nuevo commit.

  1. Regrese a la interfaz de usuario de Jenkins y vaya a la página git-integration-project.
  2. En la barra lateral izquierda, verá una nueva opción llamada Git Polling Log. Haga clic en ella.
  3. Esta página muestra la actividad de sondeo después de que Jenkins haya ejecutado al menos un ciclo. Puede tardar hasta un minuto en aparecer la primera entrada. Debería ver entradas como:
Started on ...
Using strategy: Default
[poll] Last Built Revision: Revision ...
The recommended git tool is: NONE
No credentials specified
 > git --version ## timeout=10
 > git ls-remote -h -- git://localhost/git-playground.git ## timeout=10
...
No changes

Configuración de sondeo de SCM

Esto demuestra que Jenkins está configurado para sondear el repositorio automáticamente. En un proyecto del mundo real, el repositorio normalmente estaría alojado en un servidor Git y Jenkins compilaría cuando aparezcan nuevos commits.

Resumen

En este laboratorio, ha obtenido experiencia práctica con una de las integraciones más críticas en una canalización (pipeline) de CI: conectar Jenkins a un repositorio de control de versiones Git.

Ha logrado con éxito:

  • Verificar que el plugin de Git esencial esté disponible para habilitar las capacidades de integración de Git en Jenkins.
  • Crear un proyecto Freestyle y configurarlo para extraer código de un repositorio Git.
  • Definir un paso de compilación para ejecutar un script de shell desde el código extraído.
  • Verificar la configuración ejecutando una compilación manual.
  • Configurar un activador de compilación automatizado mediante Poll SCM, lo que permite a Jenkins detectar y compilar nuevos commits automáticamente.

Estas habilidades son fundamentales para automatizar su flujo de trabajo de desarrollo y son el primer paso para construir una canalización de CI/CD robusta y eficiente con Jenkins.