Hace ya bastante tiempo que no he actualizado mi entorno SonarQube. Al menos seis meses o más: todavía estoy en la versión 4.2, mientras que la última versión disponible es la 4.5.1 LTS (Long Term Support). Por lo tanto una versión sumamente candidata a una instalación.
Este artículo en el blog SonarSource describe los objetivos de dicha versión: Walking the Tightrope: Balancing Agility and Stability. La 4.5.1 no sólo ofrece correcciones, sino también muchos cambios y nuevas características.
No es el primer post sobre este tema, encontrarás unos en esta parte SonarQube – Installation de mi blog. Entonces este artículo será más conciso, con referencias a estos posts anteriores y más detallados, cuando sea necesario.
Plan de acción
Tomo mi tiempo para hacer una actualización (ya que no lo hago tan a menudo) porque no hay, sino un procedimiento, pero al menos un plan a seguir. A partir de lo que yo llamo los prerequisitos.
Empiezo por comprobar lo que hay de nuevo en la versión Sonar y especialmente, sobre todo, la documentación de upgrade. Incluso puedo referirme a un artículo de mi blog que describe una actualización anterior, pero este proceso puede variar. Ya me ha ocurrido encontrar un error por no seguir estos requisitos previos con cuidado. La instalación o la actualización de SonarQube no es automática, no es un clic en un archivo ejecutable para ejecutar el software, hay algunos pasos manuales.
Además, estas notas de upgrade en versión 4.5 presentan posibles impactos en mi entorno, los diferentes análisis y proyectos en mi repositorio, sus configuraciones, y especialmente posibles conflictos con la versión anterior de unos plugins. Veo en particular que debo quitar el plugin de Technical Debt – sabes, el plugin SQALE que utilizo en todos mis análisis – antes de instalar esta nueva versión de SonarQube:
El Update Center también presenta una visión general de los diferentes plugins que necesitan una actualización.
Puedo accederlo conectandome como Admin y, a continuación, el menú ‘Settings’ me lleva a la página con el mismo nombre en la que selecciono el menú ‘Update Center’ (barra de menú izquierda) para llegar a la misma página ‘Update Center’ con diferentes pestañas. Primero empezamos con ‘System Updates’ que me permite comprobar que:
- Puedo actualizar directamente mi versión instalada 4.2 en la última versión 4.5.1 sin pasar por una versión intermedia. ¡Genial!
- El proceso de upgrade necesita una actualización de algunos plugins antes …
- … la instalación de Sonar 4.5.1.
Pero primero, último pre-requisito: una copia de seguridad de mi base de datos, o más bien del esquema (usuario) Sonar. Si tienes un Oracle como yo, puedes referirte a este procedimiento de backup.
Upgrade de plugins (1)
Empiezo por la actualización de los plugins mencionados anteriormente, haciendo clic en el ‘Upgrade’ para cada uno de ellos … para ver aparecer un mensaje de error:Bueno, esto se muerde la cola: la pestaña ‘System Updates’ me dice de actualizar algunos plugins antes de actualizar SonarQube, pero cuando trato de seguir estas instrucciones, este mensaje me indica que debemos actualizar primero la versión de SonarQube.
Además, esto es lo que está indicado claramente en la pestaña ‘Plugin Updates’ :
Intenté descargar una nueva versión del plugin ‘Developer Cockpit’ en el directorio de los plugins ‘..\Sonar\sonarqube-4.5.1\extensions\plugins’, y luego reiniciar el servicio Sonar, pero sin éxito:
El log de errores ‘..\Sonar\sonarqube-4.5.1\logs\sonar.log’ me dice claramente que no puedo trabajar con esta versión del plugin para esta versión de Sonar. De hecho, es la documentación de upgrade en versión 4.5 que tenemos que seguir, pues de nuevo, muy importante consultarla siempre antes de cualquier acción. Voy a quitar el plugin Technical Debt, el único plugin obsoleto (deprecated) en mi entorno, antes de instalar la nueva versión de SonarQube.
Upgrade de SonarQube
Las instrucciones detalladas se pueden encontrar en un post anterior Sonar Upgrade 4.0. Así que voy a enumerarlas brevemente, a menos que encontremos algo nuevo y diferente.
- Parada (Stop) del servicio Sonar.
- Copia de seguridad del directorio actual (‘..\Sonar\sonarqube-4.2’ en mi caso).
- Descargar el archivo ‘sonarqube-4.5.1.zip’ desde la pagína de download.
- Supresión del servicio Sonar existente, con el fichero ‘..\Sonar\sonarqube-4.2\bin\windows-x86-64\UninstallNTService.bat’. Obviamente, elegir el directorio para tu sistema operativo (Windows 7 de 64 bits para mí).
- Copia de los plugins de la versión anterior a la nueva versión, desde ‘..\Sonar\sonarqube-4.2\extensions\plugins’ a ‘..\Sonar\sonarqube-4.5.1\extensions\plugins’.
Nota : para esta instalación de la versión 4.5.1, no voy a copiar el plugin Technical Debt, ya que este último es obsoleto y debe ser eliminado del directorio de plugins, como visto anteriormente. - Copia del driver de base de datos Oracle ‘ojdbc6.jar’ a su nuevo directorio ‘..\Sonar\sonarqube-4.5.1\extensions\\jdbc-driver\oracle’.
- Como indicado en la página de upgrade SonarSource, tomamos las características de nuestra actual instalación para ponerlas en el archivo ‘..\Sonar\sonarqube-4.5.1\conf\sonar.properties’ con la dirección de mi base datos de Oracle. Podríamos hacer lo mismo con el archivo ‘wrapper.conf’, pero prefiero empezar con la versión en el paquete 4.5.1 y considerar luego algunos ajustes solamente en caso de problemas.
Los cambios en el archivo ‘sonar.properties’ usualmente son los siguientes:
- Usuario Oracle para el esquema Sonar: estas líneas están presentes de forma predeterminada en el archivo, pero con comentarios. Solamente tengo que quitar el signo ‘#’ delante de estas líneas.
Bueno. Ahora puedo iniciar la instalación del nuevo servicio SonarQube para esta versión con el archivo ‘..\Sonar\sonarqube-4.5.1\bin\windows-x86-64\‘InstallNTService.bat’. Una vez más, selecciona la carpeta que corresponde a tu versión del sistema operativo.
Ok. Instalación realizada:
El nuevo servicio ‘SonarQube’ (y no ‘Sonar’ como en mi anterior instalación en versión 4.2) aparece en la lista de servicios de Windows.
Y cuando lo ejecuto, me encuentro con un mensaje de error ya encontrando antes. El problema viene de la cuenta de ‘Local System’ que intenta iniciar el servicio, que no funciona en mi portátil. Puede que no experimentas este problema durante la instalación en un servidor, pero si ese es el caso en tu propio ordenador, sigue los pasos de este post para cambiar el usuario de lanzamiento del servicio.
Start del servicio, y luego del portal SonarQube en ‘http://localhost:9000/’ por defecto. Encontramos la página de mantenimiento.
Esto es normal, aún nos queda el último paso: la actualización de la base de datos desde la página de setup ‘http://localhost:9000/setup’.
Esto puede llevar algún tiempo, dependiendo de los datos en tu repositorio SonarQube, es decir, el número y el tamaño de tus proyectos.
Finalmente, Sonarqube nos indica que la base de datos se ha actualizado correctamente. Esta es la señal de que el upgrade de versión funcionó (al menos hasta que hagamos un análisis).
Upgrade de plugins (2)
Ahora que la versión más reciente de SonarQube está instalada, puedo proceder con el upgrade de los plugins desde la pestaña ‘Plugin Updates’, haciendo clic en los botones de actualización a la última versión de cada uno.
Por desgracia, esto no funciona, me sale un mensaje de error sobre el plugin ‘surefire’, que debe ser totalmente compatible con la versión del plugin ‘java’.
Y cuando lo quito del directorio de plugins, se interrumpe de nuevo el upgrade con otro mensaje de error sobre el plugin ‘jacoco’, luego ‘squid’ … a pesar de que estos plugins no están presentes en la lista anterior.
Pues de nuevo, ante todo debemos visitar la página de los plugins para comprobar si hay unas Upgrade Notes, como es el caso de los plugins de Java http://docs.sonarqube.org/display/SONAR/Java+Plugin.
Después de seguir las instrucciones que figuran en esta página y de eliminar los plugins indicados en esta lista, la actualización de los otros plugins se ejecuta sin error. Luego puedo volver a instalar esos plugins Java fácilmente.
Síntesis
Pues a modo de resumen, algunos puntos importantes a tener en cuenta:
- Pre-requisitos: siempre consultar las Releases notes y las Upgrade notes, y no sólo para SonarQube sino también para los plugins que queremos actualizar.
- El Update Center es muy útil para conocer en un solo vistazo los plugins instalados y si hay nuevas versiones, y entonces para preparar el proceso de upgrade.
- El Update Center no actualiza siempre automáticamente: a veces se necesitan algunos pasos, como la supresión manual de algunos plugins.
Ya está actualizado nuestro entorno SonarQube. Estoy impaciente por ver las nuevas reglas de calidad de código SAP (ABAP) y Cobol. En un próximo post.
Esta entrada está disponible también en Lire cet article en français y Read that post in english.