Modus

Jenkins-3

Implementación de Jenkins: Procedimiento y script de ejecución

Ahora que tenemos un controlador Jenkins configurado con nodo para ejecución y repositorio de Nexus para almacenar los artefactos, podemos montar un flujo de trabajo que nos permite un buen seguimiento y de fácil manejo para adaptarlo a varios jobs.

Cuando tenemos desarrollado un job en Talend Open Studio (TOS), llega el momento de pasar a producción.

jenkins script de ejecución

La única opción de ejecución del job fuera del Studio, pasa por compilarlo (Build) y ejecutar el paquete con Java.

Como en la segunda parte, tenemos el paquete subido como artefacto en Nexus y un sistema de ejecución basado en Jenkins totalmente configurado.

jenkins3-3

Podemos ejecutar el proyecto pipeline de Jenkins desarrollado para las siguientes etapas:

  1. Paso previo de borrado del espacio de trabajo (donde se van a guardar los ficheros necesarios en el agente.
  2. Un paso para determinar la versión del artefacto que queremos ejecutar, puede ser versión última escogida programáticamente o versión configurada a mano.
  3. Descarga de la versión escogida del artefacto desde Nexus al espacio de trabajo.
  4. Extracción de los ficheros contenidos en el archivo comprimido.

Ejecución del script lanzador correspondiendo al sistema operativo, powershell (extensión .ps1) para windows o bash Shell (extensión .sh) para las maquinas de tipo Unix.

Cabe notar que en Windows se podría usar el script .bat igualmente presente sin cambio ninguno. Pero como se necesita powershell para lectura de Nexus y descompresión, elegimos Powershell para más consistencia.

 

Detalle del script del pipeline

Para simplificar vamos a repasar la sintaxis y las etapas del script que henos creado, para simplificar vamos a ver la versión para plataforma Windows con Powershell aunque tenemos versión para plataformas Unix y multiplataforma que compartiremos de todos modos.

declaracion-pipeline-jenkins

La declaración pipeline es obligatoria. agent, nos permite especificar que el script debe usar nodos con etiqueta Windows.

El bloque environment permite de definir variable de entorno, son validas dentro del pipeline y solo de lectura.

stages, indica que es el bloque donde se pone el código de los pasos, cada uno tiene la etiqueta stage con el nombre por lo cual se identificará.

Cada stage tiene pasos identificados por steps, el comando del paso “clean WS” es un comando que permite de borrar el contenido de la carpeta que servirá de espacio de trabajo, De no hacerlo, se podría re-usar ficheros de la ejecución precedente.

jenkins-comandos-powershell

Aquí usamos un paso que contiene comandos de powershell para acceder al fichero descriptivo del paquete a través de la API de Nexus y determinar la última versión. En el caso de querer una versión fija, se inicializa sencillamente.

Se guardan dos fichero en el workspace, uno para poder inicializar el valor de esta última versión en otra instancia de powershell otro con el comando para lazar el script ps1.

stash, que está comentado, permite guardar ficheros para uso en otros proyectos.

fichero-nexus-jenkins

Descarga el artefacto necesario desde Nexus, se obtiene un fichero zip en espacio de trabajo.

comando-powershell

Único comando de powershell para extraer el fichero de propiedades y las dos carpetas del paquete Java construido por Talend.

comando-powershell-lanzador-ps1

Comando powershell ejecuta el lanzador .ps1 en la carpeta del proyecto.

Cuando vamos al panel de control del proyecto vemos el resultado de las ejecuciones y el paso que dio lugar al fallo, si hubo.

panel-control-jenkins

Ademas, podemos ver el log de cada paso. En el ejemplo debajo, la salida de consola del job de Talend.

jenkins-job-de-talend

En la siguiente parte veremos como ampliar la funcionalidad del pipeline base con trigger.

Post relacionados