tutorial sonar software scanner programming coverage configurar con code jenkins continuous-integration sonarqube static-analysis

software - jenkins+sonar+integración github



sonarqube software (2)

Demasiado tiempo para un comentario, así que tendré que escribirlo aquí.

Después de algunas investigaciones en la web, he encontrado una pregunta sobre SO de alguien que está unos pasos por delante en el proceso de tratar de configurar un sistema similar, aquí . Están tratando de hacer que todo esto funcione con Maven, no estoy seguro si tú también lo eres, pero de cualquier forma puedes ver el enlace que han estado usando para ayudarlos con su script:

https://github.com/SonarSource/sonarqube/blob/master/travis.sh

Esto muestra que necesitan escribir un script que recupere el número de extracción dinámicamente para ellos. Creo que es posible que deba seguir un enfoque similar y escribir un script que recupere el número, creo que uno de los archivos de github conf realiza un seguimiento del número de solicitud de extracción actual para sus propios fines de seguimiento.

En realidad, no es una respuesta tan directa como hubieras estado esperando, pero espero que esta sea información nueva que te ayude a llegar allí.

Problema: estoy configurando la integración de jenkins + sonar + github para la verificación automática del código estático pullrequest a través de la sonda.

Mi configuración:

  1. Sonar instalado con github

  2. Jenkins instalados

  3. En la acción posterior a la construcción de jenkins, tengo las siguientes propiedades

-Dsonar.github.login=bhuwang -Dsonar.github.repository=company/repo -Dsonar.verbose=true -Dsonar.analysis.mode=preview -Dsonar.issuesReport.console.enable=true -Dsonar.forceUpdate=true -Dsonar.github.login=gitusername -Dsonar.github.oauth=token

  1. Token fue generado desde mi cuenta github.

En este enlace he leído que tengo que proporcionar las siguientes propiedades mientras ejecuto sonarqube:

He agregado todas las propiedades excepto sonar.github.pullRequest. No sé cómo obtengo el valor de esta propiedad de forma dinámica. Parece que las cuatro propiedades anteriores deben funcionar correctamente.

Editar: he encontrado la forma de agregar propiedad -Dsonar.github.pullRequest = pullrequestNo

Y la buena noticia es que está funcionando perfectamente bien ahora con la solicitud de extracción codificada no. pero necesito la forma dinámica de obtener la solicitud de extracción no.

¿Alguien sabe cómo obtener la solicitud de extracción no? dinámicamente dentro de jenkins.?

Descubrí que el generador de solicitudes de extracción funcionará, pero no tengo suerte. No puedo usar variables de entorno del generador de solicitudes de extracción dentro de las propiedades del sonar.

https://issues.jenkins-ci.org/browse/JENKINS-24590


Finalmente puedo resolver este problema. Aquí está el detalle:

  1. Instala Sonar con el plugin GitHub.
  2. Instala Jenkins con los siguientes complementos

    • Generador de solicitud de extracción de GitHub
    • Plugin SonarQube
    • Plugin GIT
    • Plugin de GitHub

Siga este enlace para configurar el plugin generador de solicitudes de extracción: https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin#GitHubpullrequestbuilderplugin-EnvironmentVariables

    1. Configuración global del sistema Jenkins:
  • Goto Administrar Jenkins -> Configurar sistema
  • Configurar jdk
  • Instalar sonarQube Runner
  • Configurar Sonar
  • Configuración de Git WebHook
  • Configuración de PullRequest Builder

    1. Crear trabajo Free Style Jenkins
  • agregue la url github a la sección GitHub Project

  • Sección de administración del código fuente de la instalación

  • Setup Build Trigger

  • Configurar Sonar para las acciones posteriores a la compilación

  • En la sección de propiedades adicionales, proporcione las siguientes propiedades de sonar

-Dsonar.sourceEncoding=UTF-8 -Dsonar.analysis.mode=preview -Dsonar.github.repository=company/repo -Dsonar.github.login=gitusername -Dsonar.github.oauth=oauthtoken -Dsonar.host.url=sonarhostedurl -Dsonar.login=admin -Dsonar.password=pass -Dsonar.github.pullRequest=${ghprbPullId} ${ghprbPullId}: this will be provided via github pullrequest builder plugin

Nota: El trabajo debe activarse a través del plugin de construcción pullrequest; de lo contrario, $ {ghprbPullId} volverá a estar en blanco. Si ejecuta el trabajo manualmente, esto no funcionará para que tenga que pasar esta propiedad $ {ghprbPullId} como parámetro de compilación. Si desea verificar el parámetro de entorno disponible, siga estas variables de entorno Git para usar en la ejecución de scripts de shell Jenkins.

Espero que esto ayude.