¿Cómo configurar SonarQube para Swift Project?
En este articulo trataré sobre cómo configurar la “comunity edition” de SonarQube e implementar posteriormente Fastlane para obtener dichos datos y métricas de cobertura de código en el Dashboard de Sonar.
Pasos a seguir en la receta:
- Instalar en nuestra Mac la ultima versión del servidor de SonarQube
- Instalar también el SonnarScaner
- Descargar el complemento de Swift para SonarQube
- Tener un proyecto en Xcode o crear uno nuevo para Test
- Configurar el target de Test y habilitar la cobertura
- Instalación de dependencias (swiftlint/sonar-scanner/fastlane)
- Tener el fichero de sonarQube.properties
- Ejecutar la secuencia de comando de Fastlane
1. Instalar en nuestra Mac la ultima versión del servidor de SonarQube
Descargar la ultima version “community edition” del servidor de SonarQube
La descarga se debe ejecutar directamente no obstante hay un link si al pasar unos segundos no se ha descargado dicho fichero, una vez descargado, hay que descomprimir el fichero y a esa carpeta se crea modificar su nombre a “sonarqube”, una vez hecho esto, hay que moverla a la carpeta “Aplicaciones” de nuestra Mac.
2. Instalar también el SonarScanner
Descargar la version “community edition” del sonar Scanner
Evidentemente la version “Mac OS X 64.bit”, con dicho fichero descargado, descomprimir y modificar el nombre de la carpeta por “sonarscanner” y moverla a la carpeta “Aplicaciones” de nuestra Mac.
3. Descargar el complemento de Swift para SonarQube
Descargar backlite-sonar-swift-plugin-0xx.jar, este fichero esta hubicado en
Tener en encuenta la actualización de dicho repositorio, para estar alineados a la última versión, este paso una vez que lo has descargado, es que coloques dicho fichero .jar en:
/Applications/sonarqube/extensions/plugins/backelite-sonar-swift-plugin-0.4.4.jar
Una vez hecho esto, ya puedes ejecutar el “shell” de Sonar para lanzar el servidor local el SonarQube, el comando que se debe ejecutar es este:
sh /Aplicaciones/sonarqube/bin/macosx-universal-64/sonar.sh console
En nuestra terminal se verá algo parecido a esto:
4. Proyecto de Xcode
Creamos un proyecto de Test en Xcode y lo podemos llamar TestSonarApp, tener en cuenta que este proyecto de Test debe tener el Target de Test creado, y con el Test básico que crea Xcode automáticamente es suficiente de momento.
5. Configurar el target de Test y habilitar la cobertura
Una vez que se ha creado el proyecto debemos habilitar la cobertura del código en el Target de la App principal, esto se hace en la edición de los Schemas de la App.
6. Instalación de dependencias (swiftlint/sonar-scanner/fastlane)
Instalación de dependencias:
- brew instalar swiftlint
- brew instalar sonar-scanner
- brew install Fastlane
Establecer la variable PATH en bash.profile, si no tiene este fichero creado, no hay problema, se puede crear fácilmente.
export PATH=”$HOME/.fastlane/bin:$PATH”
Una vez hechas las instalaciones de estas dependencias, en la raíz del proyecto TestSonarApp ejecutar por el terminal:
fastlane init
Dicho comando lo que nos creará es una carpeta cuyo nombre es “fastlane” y dos mas llamados Gemfile + Gemfile.lock, pero durante el proceso de inicialización de dicha dependencia hay que tener en cuenta que queremos modificar dicho contenido manualmente.
Una vez que le decimos la instalación de fastlane manual, se debe ajustar el fichero que se encuentra al interior de dicha carpeta, nuestra Fastfile y colocar dicho código:
7. Tener el fichero de sonarQube.properties
Hay que tener en cuenta un fichero en la raíz del proyecto TestSonarApp, éste actúa como un archivo de configuración para el sonar Scanner:
En dicha ruta podéis descargar el fichero sonarQube.properties.
8. Ejecutar la secuencia de comando de Fastlane
Ahora viene el paso final, si se encuentra en la raíz del proyecto, a través del Terminal de Mac, ejecute el comando
fastlane metrics
Este hará toda la magia que le ha pedido en la line que se ha personalizado en dicho Fastfile y se vera algo parecido a esto.
Una vez terminado el trabajo de manera exitosa, si vamos a nuestro browser de predilección invoque la url http: // localhost: 9000 y con la sesión admin/admin para usuario y contraseña podrá acceder y verá en el Dashboard de SonarQube algo parecido a esto:
Espero vuestros comentarios y espero que os funcione correctamente.