¿Cómo configurar SonarQube para Swift Project?

Andres Felipe Ocampo
4 min readDec 17, 2020

--

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:

  1. Instalar en nuestra Mac la ultima versión del servidor de SonarQube
  2. Instalar también el SonnarScaner
  3. Descargar el complemento de Swift para SonarQube
  4. Tener un proyecto en Xcode o crear uno nuevo para Test
  5. Configurar el target de Test y habilitar la cobertura
  6. Instalación de dependencias (swiftlint/sonar-scanner/fastlane)
  7. Tener el fichero de sonarQube.properties
  8. 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:

  1. brew instalar swiftlint
  2. brew instalar sonar-scanner
  3. 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.

--

--

Andres Felipe Ocampo
Andres Felipe Ocampo

Written by Andres Felipe Ocampo

Digital Manager and Sr Lead iOS Engineer

No responses yet