github travis-ci coverity

github - Ejecute el escaneo de Coverity para cada compilación de solicitud de extracción de Travis



travis-ci (2)

Sugiero no usar Coverity, porque la cuenta gratuita tiene muchos límites. Mejor es usar Jenkins. Intentaré hacer la configuración espacially para ti. Jenkins admite solicitudes de extracción en github

Quiero automatizar el sistema de calificación de asignación de estudiantes tanto como sea posible. Idealmente, estos pasos se tomarán al enviar la tarea.

  1. Estudiante bifurca mi repositorio Github y modifica archivos
  2. El estudiante empuja el código local a su repositorio y crea una solicitud de extracción
  3. Travis CI detecta la solicitud de extracción y ejecuta la creación de solicitud de extracción
  4. Si el código se genera correctamente, Coverity ejecuta un análisis de código estático para la solicitud de extracción
  5. El alumno obtiene el estado de compilación desde la página de solicitud de extracción de Github

Establecí con éxito compilaciones de Travis para cada solicitud de extracción en mi repositorio. He ejecutado satisfactoriamente el escaneo de Coverity a través de Travis por cada compromiso en mi repositorio. Pero no puedo activar los escaneos de Coverity para la solicitud de extracción, solo se ejecutan compilaciones de Travis. ¿Puedo solucionar este problema y mantener el informe de exploración de Coverity para cada solicitud de extracción?

Este es mi .travis.yml

language: c compiler: gcc env: global: # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created # via the "travis encrypt" command using the project repo''s public key - secure: "WHkT1bLbpz8VA8tl+qyZvWHLg7YvnMPhCNXCEAQQaklcDq8HQ7glIrrs35VnTDfs09tVgkPbgsAfwBuwxqkmmxWaquW0AHdb6cefNpQVj2ovUriQVNBFmjfte9Bbq0NWKoLp+4IY/3IDfLoUOekOIDXuQtkJhNvX1zkkt21lSeo=" addons: coverity_scan: project: name: "Freeuni-CN101-2014/midterm" description: "Build submitted via Travis CI" notification_email: [email protected] build_command_prepend: "" build_command: "make" branch_pattern: "*" script: make

Travis salida de la solicitud de extracción aquí

Salida de Travis después de combinar la solicitud de extracción con la rama principal aquí


Le pregunté a Coverity Support y me respondieron

El desencadenante del escaneo de Coverity ocurre para la rama específica y no para la solicitud de extracción, y especialmente la rama que se menciona en .travis.yml

ACTUALIZAR

Con la ayuda de user @ Admaster comencé a jugar con Jenkins y el complemento cppcheck . Jenkins está escaneando solicitudes de extracción con éxito sin establecer el estado de la compilación a las confirmaciones de Github (Travis establece).

Ejemplo

Así que seguí experimentando con Travis y vine a este repositorio. Cambié mi archivo .travis.yml que se parece a esto

language: c compiler: gcc before_install: - sudo apt-get install -qq cppcheck script: - cppcheck --error-exitcode=1 --quiet . - make

cppcheck puede ser menos efectivo que Coverity, pero es suficiente para las tareas de los estudiantes.