Creando un entorno de desarrollo colaborativo Node JS y potenciándolo con herramientas online (parte 2)

Nos integraremos con Sonarqube

Diego Pérez Molinero
3 min readOct 28, 2017

En esta segunda parte vamos a proceder a integrarnos con la conocida herramienta de verificación de calidad de código Sonarqube, en su versión online Sonarcloud.

Lo primero que haremos será crear una cuenta en Sonarcloud asociada a nuestra cuenta de GitHub, pulsando en el botón de Sign in.

Una vez enlazado GitHub con Sonarcloud, se nos van a mostrar sólo nuestros proyectos.

Ahora queremos que nuestra build en Travis CI, ejecute los tests y lo suba a sonarcloud.

Para conseguir esto, hay que integrar Travis CI (que ya hemos integrado con nuestro GitHub en la parte anterior del artículo) con SonarCloud.

Lo primero que haremos es entrar en nuestra cuenta de SonarCloud, y en la pestaña de Security generamos un token.

Este token lo copiamos al portapapeles, pulsando en el botón de Copy, y nos vamos ahora a nuestra cuenta de Travis Ci, y entrando en los Settings de nuestro proyecto, añadimos una variable de entorno de nombre SONAR_TOKEN y con el valor que hemos obtenido de SonarCloud.

Necesitamos también añadir al fichero .travis.yml una serie de líneas para que se integre correctamente con sonar, con lo que nos quedaría así:

En este fichero hemos añadido una máquina de Java 8, el sonarcloud y lanzamos finalmente el script al que le pasamos como parámetros el token que hemos creado, la organización, el nombre del proyecto y el directorio dónde se encuentra el código fuente del proyecto.

Al subirlo a GitHub, Tracis CI hará su trabajo y si vamos a SonarCloud, podremos ver el resultado final, donde nos aparece ya nuestro proyecto.

Nuestro proyecto en SonarCloud
Detalle de la calidad de código estática que nos muestra SonarCloud

Ya sólo nos faltaría añadir los distintivos de Sonar a nuestro proyecto en GitHub, al igual que hicimos con la integración con Travis CI.

Pulsamos en Get project badges para ir obteniendo las que queramos

Añadimos lo siguiente a nuestro README.md y de paso, separamos el distintivo de Travis de los de Sonarqube:

__Travis-ci__: [![Travis](https://img.shields.io/travis/diegopm2000/CalculatorNodeJS.svg)]()__Sonarcloud__: [![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=com.lapots.breed.judge:judge-rule-engine&metric=alert_status)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=CalculatorNodeJS&metric=bugs)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=CalculatorNodeJS&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=CalculatorNodeJS&metric=sqale_index)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=CalculatorNodeJS&metric=code_smells)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=CalculatorNodeJS&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=CalculatorNodeJS)

Ahora si subimos el proyecto a GitHub, podremos ver los distintivos de Travis CI que ya teníamos y los nuevos que hemos añadido de Sonarqube.

En la siguiente parte de este artículo, añadiremos los test de cobertura.

Tercera parte

--

--

Diego Pérez Molinero

Software Architect & defender of clean architecture and domain driven design. Supporter of infrastructure & devops as code into the projects.