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

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s