Skip to content

[SCRUM-1265] Quality Gate de SonarQube self-hosted para el servicio de reglas - #4

Merged
santiagohb2830 merged 1 commit into
developfrom
feature/SCRUM-1265-quality-gate-sonarqube
Oct 19, 2026
Merged

santiagohb2830 merged 1 commit into
developfrom
feature/SCRUM-1265-quality-gate-sonarqube

Conversation

@santiagohb2830

@santiagohb2830 santiagohb2830 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Descripción

Activa el Quality Gate de SonarQube self-hosted (VM de Calidad) para el servicio de reglas, con el mismo diseño que MANI-Node (#40). Reemplaza la integración con SonarCloud, que nunca llegó a correr porque el paso se omitía sin SONAR_TOKEN.

.github/workflows/quality-gate.yml (nuevo), dos jobs:

  • Pruebas y cobertura (ubuntu-latest, JDK 17): mvn -B verify, que ya incluye jacoco:check (85 % líneas, 80 % ramas); copia las dependencias de compilación y publica el artefacto compilado_java (target/classes, target/test-classes, target/dependency, jacoco.xml).
  • Sonar Quality Gate (runner self-hosted calidad): descarga el artefacto y ejecuta sonarqube-scan-action v8.2.2 (fijada por SHA) con espera del gate. No ejecuta Maven ni código del repositorio en la VM.
  • Proyectos: mani-java en push a develop y mani-java-pr en PRs (Community no analiza ramas ni PRs). Ambos ya existen en Sonar con el gate MANI ADR-0005.
  • Los PRs desde forks fallan el check en ubuntu-latest en vez de omitirlo.

sonar-project.properties (nuevo): fuentes, pruebas, binarios, librerías y reporte JaCoCo.

pom.xml: se quitan sonar.organization, sonar.projectKey, sonar.host.url (sonarcloud.io) y sonar.coverage.*; esa configuración pasa al properties. JaCoCo y sus umbrales no cambian.

ci.yml: se quitan los pasos de SonarCloud y su aviso; queda como CI de pruebas.

Ticket relacionado

Checklist

  • El código pasa las reglas del linter. (YAML validado con ruby -ryaml)
  • Se ejecutaron las pruebas unitarias y de integración. (las corre el workflow en este PR; el CI de develop está en verde en a4c9c72)
  • La cobertura de SonarQube cumple los umbrales. (lo valida el check de este PR)
  • Se revisó el impacto en la arquitectura (ADRs). (ADR-0005, Políticas §6.2 y §14.1)

Requisitos antes de exigir el check

  • Secreto SONAR_TOKEN y variable SONAR_HOST_URL disponibles para el repositorio (a nivel de organización).
  • Runner calidad habilitado para MANI-Java (grupo de runners de la organización).
  • Ruleset de develop, release y main con los checks "Pruebas y cobertura" y "Sonar Quality Gate", después del primer análisis en develop.

Verificación

  • Local: mvn dependency:copy-dependencies -DincludeScope=compile genera 39 jars (20 MB). mvn verify en local con JDK 25 falla en UnexpectedErrorTest por Mockito y JDK 25; en CI se usa JDK 17, igual que el CI vigente.

…e reglas

Agrega quality-gate.yml en dos jobs: pruebas, cobertura JaCoCo y compilado en
ubuntu-latest; scanner en el runner self-hosted de la VM de Calidad con espera
del Quality Gate (proyectos mani-java y mani-java-pr). Los PRs desde forks
fallan el check en vez de omitirlo.

La configuracion de Sonar pasa del pom.xml (SonarCloud) a
sonar-project.properties, y ci.yml deja de intentar el analisis de SonarCloud.
@santiagohb2830
santiagohb2830 merged commit 0d6837e into develop Oct 19, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant