diff --git a/services/logging/Jenkinsfile.data-prepper b/services/logging/Jenkinsfile.data-prepper index c5cab41f..2b42f0b0 100644 --- a/services/logging/Jenkinsfile.data-prepper +++ b/services/logging/Jenkinsfile.data-prepper @@ -82,6 +82,30 @@ spec: set +e sonar-scanner "${args[@]}" | tee build/sonar-scanner.log sonar_rc=${PIPESTATUS[0]} + sonar_report="${QUALITY_GATE_SONARQUBE_REPORT:-build/sonarqube-quality-gate.json}" + host="${SONARQUBE_HOST_URL%/}" + query="$(printf '%s' "${SONARQUBE_PROJECT_KEY}" | sed 's/ /%20/g')" + sonar_ok=0 + if [ -n "${SONARQUBE_TOKEN:-}" ]; then + auth="$(printf '%s:' "${SONARQUBE_TOKEN}" | base64 | tr -d '\\n')" + if command -v curl >/dev/null 2>&1; then + curl -fsS -H "Authorization: Basic ${auth}" "${host}/api/qualitygates/project_status?projectKey=${query}" > "${sonar_report}" && sonar_ok=1 + elif command -v wget >/dev/null 2>&1; then + wget -qO "${sonar_report}" --header="Authorization: Basic ${auth}" "${host}/api/qualitygates/project_status?projectKey=${query}" && sonar_ok=1 + fi + elif command -v curl >/dev/null 2>&1; then + curl -fsS "${host}/api/qualitygates/project_status?projectKey=${query}" > "${sonar_report}" && sonar_ok=1 + elif command -v wget >/dev/null 2>&1; then + wget -qO "${sonar_report}" "${host}/api/qualitygates/project_status?projectKey=${query}" && sonar_ok=1 + fi + if [ "${sonar_ok}" -ne 1 ]; then + cat > "${sonar_report}" < build/junit-data-prepper.xml < @@ -510,7 +534,11 @@ METRICS } script { if (fileExists('build/junit-data-prepper.xml')) { - junit allowEmptyResults: true, testResults: 'build/junit-*.xml' + try { + junit allowEmptyResults: true, testResults: 'build/junit-*.xml' + } catch (err) { + echo "junit step unavailable: ${err.class.simpleName}" + } } } archiveArtifacts artifacts: 'build/**', allowEmptyArchive: true, fingerprint: true