Artículos relacionados
Introducción
Jenkins es una herramienta de Integración Continua (CI) que originalmente se llamaba Hudson escrita en java por Kohsuke Kawaguchi, si quieren saber la historia completa los invito a que entren a este enlace. Jenkins es una herramienta cross-platform de integración y entrega continua (Fuente: Meet Jenkins) que incrementa la productividad. Por la parte de integración continua (Continuous integration) nos permite automatizar la compilación y las pruebas de un proyecto de software facilitando la tarea de integración a los desarrolladores. Por el lado de la entrega continua (Continuous delivery) nos permite definir workflows o build pipelines que se pueden integrar con un gran número de tecnologías de testing y de despliegue. Jenkins es usada por equipos de todos los tamaños, para proyectos de una gran variedad de lenguajes y tecnologias las cuales se incluyen: Java, .Net, Ruby, Php, Groovy y más.
Características
Jenkins ofrece las siguientes características por defecto, sin embargo se pueden realizar muchas más usando plugins.
- Fácil de instalar
- Ejecuta el instalador y ya, no se necesita de instalaciones adicionales o de una base de datos.
- Fácil de configurar
- Toda la configuración se realiza desde su portal de administración.
- Cuenta con una gran variedad de plugins
- Extensible
- La mayoría de partes de jenkins pueden ser extendidas y modificadas; además, que es fácil crear nuevos plugins, esto nos permite personalizar a Jenkins según nuestras necesidades.
- Compilación distribuida:
- Jenkins puede distribuir la carga de compilación/pruebas sobre múltiples computadoras con diferentes sistemas operativos.
Requerimientos del sistema
Para correr Jenkins necesita Java7 o una versión superior, lo recomendado es instalar Java8. Jenkins necesita poca cantidad de memoria para ejecutarse correctamente, para aplicaciones pequeñas se debe contar entre 356Mb – 1Gb. Se debe tener en cuenta que los procesos que van a consumir memoria no es el de Jenkins sino de los Builds que se realicen. Por lo general un servidor de Integración Continua consume mucha memoria, cpu y disco, dependiendo de la cantidad de Builds que se ejecuten en paralelo se debe asignar la cantidad de recursos necesarios para que soporte toda esta carga.
Nota: Por defecto Jenkins ya viene con el directorio de Java dentro de la instalación, de modo que no es necesario hacer una instalación adicional.
Instalación
- Ingresar a la página de Jenkins https://jenkins-ci.org/.
- Ir a la sección Native packages y hacer clic en Windows. La versión actual es la 1.636 y el archivo zip pesa 99 mb.
- Al terminar la descarga abrir el zip y ejecutar el archivo Setup.exe
- En la pantalla donde se indica en que directorio se debe instalar se recomienda usar una ruta que no contenga espacios en blanco, en mi caso voy a ingresar la siguiente ruta: C:\Jenkins1.636\
- Ahora solo queda darle Siguiente e Instalar.
- Cuando termine la instalación tendrá que aparecer una pantalla con el mensaje: Completed the Jenkins 1.636 Setup Wizard.
- Al hacer clic en el botón Finalizar automáticamente se abrirá el navegador con la ruta por defecto que usa Jenkins que es la siguiente: http://localhost:8080/
- Ahora vamos a Panel de Control/Herramientas Administrativas/Servicios vemos que Jenkins se ha instalado como un servicio de inicio Automático.
- Es recomendable cambiar la cuenta de ejecución de Sistema Local a una cuenta de dominio, debido a que va a necesitar acceder a distintos servidores como por ejemplo: TFS, Servidor de Base de datos, Servidor de archivos, Servidores de calidad, etc.
Configuraciones adicionales
Abrir el archivo Jenkins.XML que se encuentra en la ruta donde se encuentra Jenkins instalado.
<service> <id>jenkins</id> <name>Jenkins</name> <description>This service runs Jenkins continuous integration system.</description> <env name="JENKINS_HOME" value="%BASE%"/> <executable>%BASE%\jre\bin\java</executable> <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments> <logmode>rotate</logmode> <onfailure action="restart" /> </service>
- Para cambiar el puerto por defecto se debe actualizar el valor de la etiqueta <arguments> –httpPort=8080
- Para cambiar la ruta del directorio de Java se debe actualizar el valor de la etiqueta <executable>
- Para configurar la cantidad de memoria que debe consumir el proceso del sitio web de Jenkins se debe actualizar el valor de la etiqueta <executable> -Xmx256m por uno de los siguientes valores: Xmx128m, Xmx256m, Xmx512m, Xmx764m y Xmx1024m. Referencia http://www.auditmypc.com/java-memory-xmx512.asp. Esto no se refiere la cantidad de memoria que debe consumir cada Build.
Conclusiones:
Jenkins es una herramienta de integración continua desarrollada por Kohsuke Kawaguchi que soporta una gran cantidad de tecnologías y es cross-platform. Como cualquier servidor de integración continua se debe tener en cuenta la cantidad de CPU, memoria y disco que aloje el servicio de Jenkins.
Referencias:
Metal Tip:
Este artículo lo escribí escuchando la canción Tierra de lobos de la banda Saratoga de España, les comparto el enlace.
Happy coding and Stay Heavy lml