Introducción
Jenkins puede ejecutar compilaciones en diferentes nodos. Las etiquetas (labels) describen lo que un nodo puede hacer, por ejemplo linux-build, y los trabajos pueden requerir una etiqueta coincidente antes de que Jenkins los programe. Jenkins también almacena instalaciones de herramientas, como Git, para que los trabajos y complementos puedan hacer referencia a una herramienta con nombre en lugar de depender de una ruta codificada de forma rígida.
En este laboratorio, utilizará el panel de control de Jenkins para revisar el nodo integrado, añadir una etiqueta de nodo, configurar una herramienta Git local, crear un trabajo de tipo Freestyle restringido a dicha etiqueta y confirmar el resultado de la compilación.
Abrir la página del nodo integrado
En este paso, encontrará el nodo integrado de Jenkins en el panel de control. Un nodo es un lugar donde Jenkins puede ejecutar compilaciones. Este laboratorio utiliza el nodo integrado porque ya está en línea en el controlador de Jenkins de LabEx.
Abra la interfaz de escritorio. Firefox abrirá Jenkins automáticamente. Si no es así, abra http://localhost:8080.
Desde el panel de control de Jenkins:
Haga clic en Manage Jenkins en la barra lateral izquierda y luego haga clic en Nodes. Abra el nodo llamado Built-In Node.
La página del nodo debería mostrar el estado del nodo integrado y opciones de navegación como Configure y Build History.

Ejecute este comando en la terminal para registrar que la página del nodo integrado es accesible:
curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt
Debería ver:
Built-In Node
Añadir una etiqueta al nodo integrado
En este paso, añadirá la etiqueta linux-build al nodo integrado. Una etiqueta es una marca de programación. Los trabajos que requieren linux-build solo pueden ejecutarse en nodos que tengan esa etiqueta.
En la página Built-In Node, haga clic en Configure.
Busque el campo Labels e introduzca:
linux-build
Haga clic en Save.
Después de guardar, Jenkins vuelve a la página del nodo integrado. La página debería mostrar la etiqueta linux-build.

Configurar una herramienta Git local
En este paso, registrará una herramienta Git de Jenkins llamada Local Git. La configuración de herramientas permite a Jenkins hacer referencia a una instalación con nombre en lugar de adivinar qué ejecutable utilizar.
Desde el panel de control de Jenkins:
Haga clic en Manage Jenkins y luego haga clic en Tools.
Desplácese hasta la sección Git installations. Si ya existe una instalación de Git, actualice la primera. Si la sección no tiene ninguna instalación, haga clic en Add Git.
Complete la instalación de Git con estos valores:
Name:Local GitPath to Git executable:git
Haga clic en Save.
Jenkins almacena esta definición de herramienta en la configuración de su controlador.

Ejecute este comando para inspeccionar la configuración guardada de la herramienta Git:
docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt
La salida debería incluir tanto el nombre de la herramienta como la ruta del ejecutable:
...<name>Local Git</name>
...<home>git</home>
Crear un trabajo restringido a la etiqueta
En este paso, creará un trabajo de tipo Freestyle llamado labeled-tool-demo. El trabajo estará restringido a nodos con la etiqueta linux-build, por lo que Jenkins debe programarlo en el nodo integrado etiquetado.
Desde el panel de control de Jenkins:
Haga clic en New Item, introduzca labeled-tool-demo, seleccione Freestyle project y haga clic en OK.
En la página de configuración:
Seleccione Restrict where this project can be run. En Label Expression, introduzca:
linux-build
Desplácese hasta Build Steps, haga clic en Add build step y seleccione Execute shell.
Introduzca este script de shell:
echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"
Haga clic en Save.
La página del trabajo debería abrirse después de guardar.

Ejecute este comando para registrar la configuración importante del trabajo guardado:
docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt
Ejecutar el trabajo etiquetado
En este paso, ejecutará el trabajo y leerá la salida de la consola. Esto demuestra que Jenkins aceptó la restricción de etiqueta y que la compilación puede ejecutar Git desde el entorno configurado.
En la página del trabajo labeled-tool-demo, haga clic en Build Now.
Cuando aparezca la compilación #1 en el historial de compilaciones, ábrala y haga clic en Console Output. La consola debería mostrar el mensaje de la etiqueta, una línea con git version y Finished: SUCCESS.

Ejecute este comando en la terminal para guardar la misma evidencia de la consola para su verificación:
curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt
Debería ver una salida como esta:
Running on label: linux-build
git version ...
Finished: SUCCESS
Resumen
Ha revisado el nodo integrado de Jenkins, añadido una etiqueta linux-build desde el panel de control, configurado una herramienta Git local con nombre, creado un trabajo de tipo Freestyle restringido a dicha etiqueta y verificado el éxito de la salida de la compilación.