Configurar proyecto privado con SonarQube
Si tienes un proyecto privado puedes configurar el analizador de SonarQube (sonar-scanner) para generar el análisis de código estático de tu proyecto y subirlo a tu servidor dedicado. Si aún no has instalado ninguno de estos componentes te invito a revisar los siguientes posts:
- Instalación SonarQube
- Instalación SonarScanner
Configuración
Una vez tengas instalado el sonnar-scanner y lo puedas ejecutar desde tu consola, lo siguiente será crear el archivo de configuración de SonarScanner para el proyecto. Para esto, deberás crear un archivo llamado sonar-project.properties y agregar el siguiente contenido el cual puedes modificar a tu gusto.
# must be unique in a given SonarQube instance
sonar.projectKey=PROJECT-KEY
# --- optional properties ---
# defaults to project key
#sonar.projectName=
# defaults to 'not provided'
#sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Defaults to .
sonar.sources=./src
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
# SonarQube host
sonar.host.url=https://sonarqube.domain.com
# Clover XML-format coverage report files
sonar.php.coverage.reportPaths=phpunit.coverage.xml
# SonarQubeube token
sonar.login=XXXXXXXXXXXXXXXXXXXXXXXXXXX
Seguramente te preguntarás de dónde sale toda esta información. Cuando creas un proyecto desde el panel administrativo de SonarQube obtendrás el projectKey junto con el token de login. Esta key y este login servirán de ayuda a SonarQube para ingresar el reporte en el respectivo proyecto en tu servidor. El analizador subirá automáticamente el reporte al servidor que tnegas configurado en sonar.host.url. He colocado algunas propiedades opcionales que puedes llenar a tu gusto según el nombre del proyecto y la versión del mismo.
Por otro lado sonar.sources hace referencia a la carpeta del código sobre la cuál el sonar-scanner analizará. Si tu código está codificado en UTF-8 no tendrás problema con el sourceEncoding.
Finalmente, debes tener en cuenta que si deseas agregar al reporte el coverage de tu proyecto debes configurar la propiedad sonar.php.coverage.reportPaths. En el caso que tu proyecto esté en un lenguaje diferente a PHP deberás consultar la propiedad respectiva en la documentación oficial y generar este archivo en XML con el testing framework que utilizas.
Después de esto, podrás ejecutar tranquilamente el siguiente comando en la raíz de tu proyecto ejecutar el analizador y que este se encargue automáticamente de subir el reporte a tu servidor de SonarQube.
sonar-scanner
Si en lugar de configurar tu propio servidor SonarQube deseas utilizar el servicio en la nube SonarCloud puedes visitar el siguiente post:
Configurar proyecto en SonarCloud