Instalación de Jenkins en Mac
Jenkins es un servidor de automatización para desarrollo de software y que permite implementar integración continua, ejecución de tests o automatizar despliegues de software. Es probablemente el software más utilizado en su clase y se puede utilizar para automatizar la compilación de aplicaciones para iOS en combinación con Fastlane.
En este artículo voy a explicar como se puede instalar en un mac usando homebrew, un gestor de paquetes para Mac. Como siempre, hay muchos procedimientos por Internet, pero al final contarlo de nuevo refuerza los que funcionen y quizás pueda ayudar a alguien que no pueda seguir el procedimiento en inglés.
Continuaré más adelante con algún artículo más sobre la automatización de la compilación de una apliación iOS.
Prerequisitos
Lo primero es tener instalado Homebrew. Para quien no lo conozca es un gestor de paquetes al estilo de apt-get o yum en sistemas linux. Se instala con un sencillo comando tal como se indica en su web:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Para poder instalar Jenkins en un Mac es necesario tener Java 1.7 o superior. Para ello hay que bajar Java de la web de Oracle y si se necesita, como es mi caso tener varias versiones de Java funcionando, es útil instalar jenv por si tenemos varios entornos Java para gestionarlos.
Para instalar jenv lee el anexo al final del artículo.
Instalar Jenkins con brew
$ brew install jenkins
Para que se lance automáticamente al arrancar el Mac haremos lo siguiente:
$ mkdir -p ~/Library/LaunchAgents
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
De esta forma se enlaza el plist que configura el servidor y queda en /Library/LaunchAgents/. Si no, ocurrirá que se copiará a esta carpeta automáticamente cada vez que lo lancemos y se borrará al pararlo, con lo que si cambiamos alguna propiedad del plist como ip o puerto en el que escucha, no podremos persistirla entre arranques.
Primer acceso a Jenkins
Una vez instalado podemos acceder abriendo un navegador y conectando al bucle local http://127.0.0.1:8080
Lo primero que tendremos que hacer es seguir las instrucciones en pantalla para introducir un valor secreto y dar por finalizada la instalación.
Acceder desde cualquier máquina en la red
Para acceder remotamente desde cualquier máquina de nuestra red local hay que editar ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist y cambiar
<string>--httpListenAddress=127.0.0.1</string>
por
<string>—httpListenAddress=0.0.0.0</string>
Actualización y mantenimiento
Al estar instalado mediante el gestor de paquetes brew el mantenimiento se puede hacer de dos formas:
- Jenkins es capaz de auto-actualizarse (también los plugins)directamente desde el interfaz web.
- Podemos usar brew update Jenkins para instalar la última versión que exista en el gestor de paquetes. Esto no afectará a los plugins instalados.
Si usamos brew debemos tener en cuenta que tendremos que repetir los pasos para enlazar el plist de arranque:
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
Arrancar y parar Jenkins con brew
Existen varios comandos para manejar el servicio:
$ brew services start jenkins // Inicia el servicio
$ brew services stop jenkins // para el servicio
$ brew services reload jenkins // Lee de nuevo la configuración y lanza el servicio
Anexo: Cómo instalar jenv y poder tener varias versiones de Java en un mac
En primer lugar instalaremos jenv con brew
$ brew install jenv
Luego debemos instalar las versiones de Java que necesitemos. Lo podemos hacer también usando homebrew, y lo primero es utilizar brew-cask para actualizar obtener las versiones disponibles.
$ brew update
$ brew tap caskroom/cask
$ brew install brew-cask
Podemos ver las versiones disponibles con
$ brew tap caskroom/versions
entre las versiones posibles podemos instalar una haciendo simplemente:
$ brew cask install java
Con esto instalaremos la última que en este momento es Java 8. Otras vendran indicadas como "java6", "java7" y así. Con esto solo la instalamos en el Mac, pero hay que indicar a jenv que use estas versiones instaladas que podremos encontrar en /Library/Java/JavaVirtualMachines/
Añadimos las versiones que hayamos instalado a jenv con el comando add:
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/
Uso de jenv
Y ahora ya podemos usarlo. Para comprobar versiones instaladas con jenv podemos usar el comando versions:
$ jenv versions
podemos seleccionar una versión para trabajar con:
$ jenv global [nombre_version]
O lo que es más fascinante, podemos configurar que se use una versión de Java para una carpeta en concreto
$ cd [ruta/a/carpeta]
$ jenv local [nombre_version]