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.
- Estudiante bifurca mi repositorio Github y modifica archivos
- El estudiante empuja el código local a su repositorio y crea una solicitud de extracción
- Travis CI detecta la solicitud de extracción y ejecuta la creación de solicitud de extracción
- Si el código se genera correctamente, Coverity ejecuta un análisis de código estático para la solicitud de extracción
- 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.