La tarea de SonarCloud de Azure Pipelines ha comenzado a fallar (desde hace unos días).
Nuestra empresa utiliza Azure DevOps Pipelines para construir software. Todas las pipelines están conectadas a SonarCloud para análisis de código.
Aunque todos nuestros planes (DevOps y Sonar) son pagados, espero obtener respuestas más rápidas y claras aquí.
Lunes 30 de noviembre de 2021
Nuestra última pipeline exitosa indica una advertencia, espero que el equipo de SonarCloud le haya dado la debida atención.
Esta tarea utiliza el controlador de ejecución Node 6, que pronto quedará obsoleto. Si eres el desarrollador de la tarea, considera la guía de migración para el controlador Node 10 – https://aka.ms/migrateTaskNode10. Si eres el usuario, no dudes en contactar a los dueños de esta tarea para proceder con la migración..
<h1>Comenzando: Preparación del análisis de SonarCloud</h1>
Tarea : Configuración de preparación de análisis
Descripción : Preparar la configuración de análisis de SonarCloud
Versión : 1.22.0
Autor : sonarsource
<h1>Ayuda : Versión: 1.22.0. <a href="https://sonarcloud.io/documentation/analysis/scan/sonarscanner-for-azure-devops/">Más información</a></h1>
<h2>[advertencia] Esta tarea utiliza el controlador de ejecución Node 6, que pronto quedará obsoleto. Si eres el desarrollador de la tarea, considera la guía de migración para el controlador Node 10 - https://aka.ms/migrateTaskNode10. Si eres el usuario, no dudes en contactar a los dueños de esta tarea para proceder con la migración.</h2>
Finalizando: Preparación del análisis de SonarCloud
La pipeline, como dije, tuvo éxito, por lo que construimos nuestro software.
<h3>Martes 30 de noviembre de 2021 y hoy 1 de diciembre</h3>
La advertencia ha desaparecido, pero las pipelines fallarán en el escaneo de SonarCloud.
Las tareas de SonarCloud se actualizaron a la versión 1.23.0.
Pero la tarea de Gradle falla con el siguiente error:
<p>“`
* Qué salió mal:
Execution failed for task ‘:sonarqube’.
No tienes autorización para ejecutar el análisis. No se estableció ninguna variable sonar.login o SONAR_TOKEN env
Código de la pipeline
```yaml
stages:
- stage: Build
variables:
# Build
vstsFeed:
buildArtifactName:
<pre><code> # Parámetros de SonarCloud
sonarCloudOrganization:
sonarCloudProjectKey:
sonarCloudProjectName:
jobs:
- job: Build
displayName: Construir aplicación
pool:
vmImage: ubuntu-20.04
steps:
- task: MavenAuthenticate@0
inputs:
artifactsFeeds:
# Preparación del análisis de SonarCloud
- task: SonarCloudPrepare@1
displayName: Preparar análisis de SonarCloud
inputs:
SonarCloud: 'SonarCloud'
organization: $(sonarCloudOrganization)
scannerMode: 'Other'
extraProperties: |
# Propiedades adicionales que se pasarán al escáner,
# Coloque una clave=valor por línea, ejemplo:
sonar.exclusions=**/*.bin, build/**, build-extra/**
sonar.projectKey=$(sonarCloudProjectKey)
sonar.projectName=$(sonarCloudProjectName)
- task: Gradle@2
displayName: Construir con Gradle
inputs:
gradleWrapperFile: gradlew
gradleOptions: -Xmx3072m $(gradleJavaProperties)
options: -Pci=true -PbuildId=$(Build.BuildId) -PreleaseType=${{parameters.releaseType}}
jdkVersionOption: 1.11
jdkArchitectureOption: x64
publishJUnitResults: true
sqAnalysisEnabled: true
sqGradlePluginVersionChoice: specify
sqGradlePluginVersion: 3.2.0
testResultsFiles: '$(System.DefaultWorkingDirectory)/build/test-results/**/TEST-*.xml'
tasks: clean build
- task: SonarCloudPublish@1
displayName: Publicar puerta de calidad de SonarCloud
inputs:
pollingTimeoutSec: '300'
# Publicar artefactos
- task: PublishCodeCoverageResults@1
displayName: Publicar resultados de cobertura de código (prueba)
condition: succeededOrFailed()
inputs:
summaryFileLocation: '$(System.DefaultWorkingDirectory)/build/reports/jacoco/test/*.xml'
pathToSources: $(System.DefaultWorkingDirectory)/src/main/java
failIfCoverageEmpty: false
</code></pre>
Tenga en cuenta que uso Gradle junto con la configuración de Azure DevOps para ejecutar un escaneo de SonarCloud. SonarCloud está vinculado al proyecto como una Service Connection
.
Edit: actualizar sqGradlePluginVersion
a 3.3 produce el mismo resultado.
Pregunta
¿Puedo hacer algo para solucionar esto? Mis pipelines requieren SonarCloud antes de fusionar una solicitud de extracción, y nuestra codificación está congelada en este momento.
¿O es un problema totalmente relacionado con SonarCloud y Azure DevOps?
davy.ai
Según el mensaje de error, parece que la exploración de SonarCloud está fallando porque no tienes autorización para ejecutar el análisis. El error sugiere configurar la variable de entorno
sonar.login
oSONAR_TOKEN
para autenticar el análisis.Dado que mencionaste que tu cuenta de SonarCloud está vinculada al proyecto como una conexión de servicio, es posible que quieras verificar si se están utilizando las credenciales correctas para la conexión. Puedes verificar esto yendo a la configuración de SonarCloud en tu proyecto de Azure DevOps y revisando los detalles de la conexión de servicio.
Si las credenciales son correctas, intenta configurar la variable
SONAR_TOKEN
en el pipeline de Azure DevOps. Puedes obtener el token desde el sitio web de SonarCloud. Puedes agregar el siguiente comando a tu pipeline para configurar la variable:Reemplaza
<tu-token-de-sonar>
con tu token real de SonarCloud.Si el problema persiste, es posible que desees contactar al soporte de SonarCloud para obtener más ayuda.