Jenkins – Parte2 Estructura de carpetas y variables de entorno

Logo Jenkins
Logo Jenkins

Artículos relacionados

Introducción

Antes de empezar a crear nuestro primer Job en Jenkins es muy importante conocer nuestro entorno a nivel de variables y estructura de carpetas. Jenkins cuenta con una gran cantidad de variables de entorno que nos ayudan a evitar poner valores en duro al momento de escribir algún script o configurar un job. Además, cuenta con una estructura de carpetas que es importante conocer para ejecutar tareas del tipo backup o upgrade.

Estructura de carpetas

La carpeta de Jenkins contiene todas las configuraciones hechas en el servidor a través de la pantalla de Administración, toda esta información es almacenada en forma de archivos XML. A continuación se describe a detalle las principales carpetas que usa Jenkins:

  • {JENKINS_HOME}/Jre: Carpeta usada por defecto para almacenar el Java Runtime Environment. Esta carpeta contiene todos los archivos que necesita el runtime de java.
  • {JENKINS_HOME}/Jobs: Carpeta por defecto donde se crean los Jobs. En esta ubicación se crea una carpeta por cada Job, al menos que se indique alguna ruta al momento de creación.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}: Carpeta que almacena el contenido de un Job.  Esta carpeta contiene el detalle de configuración del Job y los resultados de cada Build.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/config.xml: Este archivo contiene la información de configuración del Job.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/builds: Esta carpeta contiene el historial del resultado de cada Build.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/workspace: Esta carpeta contiene el código fuente descargado y el resultado de la compilación.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastStable: Esta carpeta contiene el resultado del último Build estable.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastStable/build.xml: Este archivo contiene el resultado de la última compilación estable.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastStable/changeLog.xml: Este archivo contiene los cambios descargados del Servidor de código fuente.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastSuccessful: Esta carpeta contiene el resultado del último Build exitoso, no tuvo errores de compilación.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastSuccessful/build.xml: Este archivo contiene el resultado de la última compilación exitosa.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/lastSuccessful/changeLog.xml: Este archivo contiene los cambios descargados del Servidor de código fuente.
  • {JENKINS_HOME}/Jobs/{JOB_NAME}/nextBuildNumber: Este archivo contiene el numero que sera asignado al siguiente Build.
  • {JENKINS_HOME}/Plugins: Esta carpeta contiene los plugins que se han instalado.  Los plugins permiten extender las funcionalidades de Jenkins.
  • {JENKINS_HOME}/UserContent: Esta careta sirve para poner algún contenido que se necesite compartir dentro del sitio de Jenkins solo accediendo a esta URL: http://server/jenkins/userContent/.
  • {JENKINS_HOME}/War: Este directorio almacena el contenido del sitio web.
  • {JENKINS_HOME}/Jenkins.exe: Ejecutable de Jenkins usado por el servicio.
  • {JENKINS_HOME}/Jenkins.exe.config: Archivo contiene la versión del framework con la que se ejecuta el servicio de Jenkins.
  • {JENKINS_HOME}/Jenkins.xml: Este archivo contiene la configuración usada por el servicio de Jenkins, como: URL, nombre y descripción del servicio, ruta y argumentos de ejecución.
  • {JENKINS_HOME}/hudson.model.UpdateCenter.xml: Este archivo almacena la URL del centro de actualización de Jenkins: http://updates.jenkins-ci.org/update-center.json
  • {JENKINS_HOME}/nodeMonitors.xml: Este archivo contiene la información de los nodos configurados para este servicio de Jenkins.
Directorio Jenkins
Directorio Jenkins

Variables de entorno:

Jenkins cuenta con muchas variables de entorno que se asignan al momento de ejecutar un job y pueden ser usadas desde Shell scripts, comandos batch, Ant scripts, etc. La siguiente lista describe algunas de las variables de entorno más usadas:

  • BUILD_NUMBER: Número de BUILD actual, por ejemplo: «456»
  • BUILD_ID: Id de BUILD actual, por ejemplo: «2005-08-22_23-59-59» (YYYY-MM-DD_hh-mm-ss)
  • BUILD_URL: URL donde se encuentra el resultado del BUILD, por ejemplo: http://localhost/jenkins/job/MyJobName/123/
  • NODE_NAME: Nombre del nodo actual donde se ejecuto el BUILD, por ejemplo «Master» para el nodo principal
  • JOB_NAME: Nombre del proyecto del BUILD actual, por ejemplo: «Proyecto1-InspeccionContinua»
  • BUILD_TAG: Etiqueta que se asigna a un BUILD, por ejemplo: jenkins-${JOB_NAME}-${BUILD_NUMBER}
  • JENKINS_URL: Asigna la URL del nodo principal de Jenkins que ejecuta el BUILD.
  • EXECUTOR_NUMBER: Número único que indica el ejecutor actual del BUILD.
  • JAVA_HOME: Ruta donde se encuentra el JDK de Java configurado.
  • WORKSPACE: Ruta donde se encuentra el Job del proyecto configurado.
  • JENKINS_HOME: Ruta donde se encuentra instalado Jenkins.

Conclusiones:

En este articulo hemos conocido la estructura de carpetas y variables de entorno que maneja jenkins. Dentro de las carpetas más importantes tenemos: Jobs, plugins y war. Es importante conocer estas carpetas para ejecutar tareas del tipo backup o upgrade. Las variables de entorno ayudan a evitar poner valores en duro al momento de crear algún tipo de script, entre las variables más usadas tenemos: Workspace, Build_Number, Job_name y Java_Home.

Referencias:
Metal Tip:

Este artículo lo escribí escuchando la canción Lejos de ti de la banda Saratoga de España, les comparto el enlace.

Happy coding and Stay Heavy lml

Deja un comentario