Manual de Jenkins

De Wiki de EGC
Saltar a: navegación, buscar

0. ¿Qué es Jenkins?

http://jenkins-ci.org/

Es una herramienta web de código abierto (fork de la herramienta hudson) para soportar integración continua en nuestro desarrollo.

Recordemos que la integración continúa son prácticas para la construcción del software que incluyen:

  • Construcción automática diaria del un proyecto software un grupo de desarrollo, integrando todos los componentes.
  • Lanzamiento automático de pruebas.
  • Informes automáticos del resultado de las pruebas y la construcción que permita hacer el seguimiento.

1. Instalación

Jenkins es una aplicación Java con tecnología de servlets. Por lo tanto, necesita un servidor web que soporte la biblioteca J2EE (Tomcat, JBoss, Glassfish, etc). Existe un paquete de instalación que incluye tanto una versión de JRE como un servidor Jetty, con lo que no es necesario instalar nada más.

http://jenkins-ci.org/

Windows

Descargando el paquete de Windows, tenemos un instalador automático. NOTA: La última versión (1.541) puede dar problemas en Windows 8 (usar 1.538).

Linux

Existen binarios para los diferentes sistemas de instalación de paquetes de Linux (apt-get, rpm, etc)

Jenkins es una aplicación que estará constantemente en ejecución y de forma habitual construyendo proyectos, ejecutando pruebas, etc, con lo que, normalmente, jenkins estará en una máquina destinada a tal efecto, diferente de las máquinas propias de los desarrolladores.

Integración con GIT

Por defecto, Jenkins es capaz de comunicarse con SVN y CVS como sistema de control de versiones, pero no con GIT. Para ello, hay que instalar un plugin adicional. En la ventana de administración de jenkins, buscar la opción "Administrar Plugins" y dentro de la columna "Todos los plugins", buscar e instalar el plugin "Git Plugin" dentro de la sección de Plugins de repositorios de software (No confundir con otros plugins relacionados con GIT). Para que Jenkins pueda usar Git, tenemos que tener instalado Git en la máquina y el ejecutable de Git debe ser accesible (bien mediante variable Path de entorno o bien explícitamente en la configuración de jenkins). Para conectar con un repositorio de GIT (u otros repositorios de código) será necesario indicar las credenciales a usar (Usuario y Password). Las credenciales se gestionar de forma global en el panel de administración de de GIT.

JenkinsPluginGIT.png

2. Uso básico de Jenkins

Configuración básica

Por defecto, el acceso a Jenkins es público, con lo que cualquiera podría tener acceso a administrarlo, por lo que es conveniente establecer unas credenciales de acceso. La autenticación se puede delegar en un directorio LDAP, el servidor web o la propia aplicación jenkins.

JenkinsSecurity.png

Creando un proyecto

JenkinsNewJob.png

En Jenkins podemos gestionar cualquier tipo de proyectos software, siempre que jenkins sea capaz de gestionar y construir dichos proyectos. Por ejemplo, si en la máquina tenemos instalado Maven, Jenkins podrá invocar a Maven para construir el proyecto, lanzar tests, etc. NOTA: No confundir la máquina en la que desarrollamos con la máquina y con la que accedemos vía el navegador a Jenkins con la máquina la que está instalado Jenkins. En Jenkins, los proyectos son llamados "Jobs" (Tareas). A la hora de crear un proyecto, habrá que indicar la ruta al código fuente del proyecto. Lo habitual para hacer integración continúa, es que el código fuente esté alojado en un sistema de control de versiones de manera que Jenkins pueda acceder automáticamente a la última versión. Si no indicamos la ruta de un sistema de control de versiones, habrá que copiar manualmente los ficheros fuente que queremos que Jenkins utilice.

Al elegir la opción de "Crear nueva Tarea", Jenkins pregunta el tipo de proyecto. Ya existe un tipo de proyecto definido para proyectos Maven. Una vez elegido el tipo de proyecto, existen varios valores importantes de configuración:

Origen del código fuente

La ruta del código fuente se indicará normalmente a través de la URL de un repositorio de control de versiones (CVS, SVN, Git, etc). Habrá que indicar las credenciales que se usarán para consultar ese repositorio de código fuente (se crean mediante el administrador de credenciales de jenkins).

Disparador de ejecución

Tendremos que indicar cuando que queremos que Jenkins construya el proyecto. Las opciones más habituales son:

  • Consultando el Sistema de Control de Versiones periódicamente para traerse los cambios al workspace del proyecto.
  • Periódicamente, para tener informes periódicos (independientemente de si hay cambios o no).

En ambos casos, habrá que indicar la periodicidad.

El caso más habitual es realizar la construcción una vez al día.

JenkinsCreateProject.png

Resultado de Construcción del proyecto

Por defecto, la configuración del proyecto lanza el goal (comando) Test, con lo que el resultado de dicha ejecución lo veremos visualmente en jenkins. Jenkins hace una copia completa del proyecto por cada ejecución (dentro del workspace del proyecto en jenkinss, carpeta /workspace dentro del directorio de instalación de jenkins). Es posible definir tareas a ejecutar tras la construcción del proyecto como parte de la configuración de la tarea.