diff --git a/.github/workflows/php-tests.yml b/.github/workflows/php-tests.yml index fc600ded..6fe7636f 100644 --- a/.github/workflows/php-tests.yml +++ b/.github/workflows/php-tests.yml @@ -71,7 +71,7 @@ jobs: # Obtener datos de SonarCloud SONAR_DATA=$(curl -s "https://sonarcloud.io/api/measures/component?component=JosueUPT_CalidadU2&metricKeys=bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density,complexity,ncloc,cognitive_complexity,comment_lines_density,security_rating,reliability_rating,sqale_rating,development_cost,security_remediation_effort,reliability_remediation_effort,sqale_index,confirmed_issues,effort_to_reach_maintainability_rating_a") - # Extraer todos los valores disponibles + # Extraer valores BUGS=$(echo $SONAR_DATA | jq -r '.component.measures[] | select(.metric == "bugs") | .value') VULNERABILITIES=$(echo $SONAR_DATA | jq -r '.component.measures[] | select(.metric == "vulnerabilities") | .value') CODE_SMELLS=$(echo $SONAR_DATA | jq -r '.component.measures[] | select(.metric == "code_smells") | .value') @@ -91,11 +91,17 @@ jobs: CONFIRMED_ISSUES=$(echo $SONAR_DATA | jq -r '.component.measures[] | select(.metric == "confirmed_issues") | .value') EFFORT_TO_A=$(echo $SONAR_DATA | jq -r '.component.measures[] | select(.metric == "effort_to_reach_maintainability_rating_a") | .value') + # Verificar que los valores se obtuvieron + echo "Valores obtenidos:" + echo "Bugs: $BUGS" + echo "Coverage: $COVERAGE" + echo "Code Smells: $CODE_SMELLS" + mkdir -p public/sonar echo " - + Análisis SonarCloud -
+

Análisis Detallado de Calidad del Código

-

Métricas Principales

-
-
-
Cobertura de Código
-
$COVERAGE%
-
$(echo \"100 - $COVERAGE\" | bc)% sin cobertura
+

Métricas Principales

+
+
+
Cobertura de Código
+
__COVERAGE__%
+
$(echo "100 - __COVERAGE__" | bc)% sin cobertura
-
-
Bugs
-
$BUGS
-
Problemas detectados
+
+
Bugs
+
__BUGS__
+
Problemas detectados
-
-
Code Smells
-
$CODE_SMELLS
-
Oportunidades de mejora
+
+
Code Smells
+
__CODE_SMELLS__
+
Oportunidades de mejora
-
-
Duplicación
-
$DUPLICATION%
-
Código duplicado
+
+
Duplicación
+
__DUPLICATION__%
+
Código duplicado
-
-
Vulnerabilidades
-
$VULNERABILITIES
-
Vulnerabilidades detectadas
+
+
Vulnerabilidades
+
__VULNERABILITIES__
+
Vulnerabilidades detectadas
-
-
Líneas de Código
-
$LINES
-
Total de líneas
+
+
Líneas de Código
+
__LINES__
+
Total de líneas
-

Métricas Avanzadas

-
-
-
Complejidad Ciclomática
-
$COMPLEXITY
-
Total del proyecto
+

Métricas Avanzadas

+
+
+
Complejidad Ciclomática
+
__COMPLEXITY__
+
Total del proyecto
-
-
Complejidad Cognitiva
-
$COGNITIVE_COMPLEXITY
-
Dificultad de entendimiento
+
+
Complejidad Cognitiva
+
__COGNITIVE_COMPLEXITY__
+
Dificultad de entendimiento
-
-
Densidad de Comentarios
-
${COMMENT_DENSITY}%
-
Código documentado
+
+
Densidad de Comentarios
+
__COMMENT_DENSITY__%
+
Código documentado
-
-
Costo de Desarrollo
-
$DEVELOPMENT_COST
-
Valor estimado
+
+
Costo de Desarrollo
+
__DEVELOPMENT_COST__
+
Valor estimado
-
-
Esfuerzo para Rating A
-
$EFFORT_TO_A min
-
Tiempo necesario
+
+
Esfuerzo para Rating A
+
__EFFORT_TO_A__ min
+
Tiempo necesario
-
-
Problemas Confirmados
-
$CONFIRMED_ISSUES
-
Issues verificados
+
+
Problemas Confirmados
+
__CONFIRMED_ISSUES__
+
Issues verificados
-

Calificaciones y Esfuerzos

-
-
-
Seguridad
-
$([ \"$SECURITY_RATING\" = \"1\" ] && echo \"A\" || echo \"B+\")
-
Esfuerzo: $SECURITY_EFFORT min
+

Calificaciones y Esfuerzos

+
+
+
Seguridad
+
__([ "$SECURITY_RATING" = "1" ] && echo "A" || echo "B+")__
+
Esfuerzo: __SECURITY_EFFORT__ min
-
-
Confiabilidad
-
$([ \"$RELIABILITY_RATING\" = \"1\" ] && echo \"A\" || echo \"B+\")
-
Esfuerzo: $RELIABILITY_EFFORT min
+
+
Confiabilidad
+
__([ "$RELIABILITY_RATING" = "1" ] && echo "A" || echo "B+")__
+
Esfuerzo: __RELIABILITY_EFFORT__ min
-
-
Mantenibilidad
-
$([ \"$MAINTAINABILITY_RATING\" = \"1\" ] && echo \"A\" || echo \"B+\")
-
Deuda: $TECH_DEBT min
+
+
Mantenibilidad
+
__([ "$MAINTAINABILITY_RATING" = "1" ] && echo "A" || echo "B+")__
+
Deuda: __TECH_DEBT__ min
-
- Última actualización: $(date \"+%Y-%m-%d %H:%M:%S\") +
+ Última actualización: __$(date "+%Y-%m-%d %H:%M:%S")__
" > public/sonar/index.html + # Reemplazar los valores + sed -i "s/__COVERAGE__/$COVERAGE/g" public/sonar/index.html + sed -i "s/__BUGS__/$BUGS/g" public/sonar/index.html + sed -i "s/__CODE_SMELLS__/$CODE_SMELLS/g" public/sonar/index.html + sed -i "s/__DUPLICATION__/$DUPLICATION/g" public/sonar/index.html + sed -i "s/__COMPLEXITY__/$COMPLEXITY/g" public/sonar/index.html + sed -i "s/__LINES__/$LINES/g" public/sonar/index.html + sed -i "s/__COGNITIVE_COMPLEXITY__/$COGNITIVE_COMPLEXITY/g" public/sonar/index.html + sed -i "s/__COMMENT_DENSITY__/$COMMENT_DENSITY/g" public/sonar/index.html + sed -i "s/__SECURITY_RATING__/$SECURITY_RATING/g" public/sonar/index.html + sed -i "s/__RELIABILITY_RATING__/$RELIABILITY_RATING/g" public/sonar/index.html + sed -i "s/__MAINTAINABILITY_RATING__/$MAINTAINABILITY_RATING/g" public/sonar/index.html + sed -i "s/__DEVELOPMENT_COST__/$DEVELOPMENT_COST/g" public/sonar/index.html + sed -i "s/__SECURITY_EFFORT__/$SECURITY_EFFORT/g" public/sonar/index.html + sed -i "s/__RELIABILITY_EFFORT__/$RELIABILITY_EFFORT/g" public/sonar/index.html + sed -i "s/__TECH_DEBT__/$TECH_DEBT/g" public/sonar/index.html + sed -i "s/__CONFIRMED_ISSUES__/$CONFIRMED_ISSUES/g" public/sonar/index.html + sed -i "s/__EFFORT_TO_A__/$EFFORT_TO_A/g" public/sonar/index.html + - name: Verify Sonar Report run: | echo "Verificando reporte de Sonar..."