diff --git a/build/cicd/sonarqube/entrypoint.sh b/build/cicd/sonarqube/entrypoint.sh index 42f95643a..112e94482 100755 --- a/build/cicd/sonarqube/entrypoint.sh +++ b/build/cicd/sonarqube/entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e USAGE=$(cat <<-END @@ -67,16 +67,23 @@ curl -XPOST -u ${TOKEN}: "${SERVER}/api/qualitygates/select?gateId=${QUALITY_GAT exit 1 } -params="-Dsonar.sourceEncoding=${ENCODING} \ - -Dsonar.projectName=${PROJECT_NAME} \ - -Dsonar.projectKey=${PROJECT_KEY} \ - -Dsonar.sources=${SOURCE_PATH} \ - -Dsonar.projectBaseDir=${SOURCE_PATH} \ - -Dsonar.host.url=${SERVER} \ - -Dsonar.login=${TOKEN}" +declare -A paramsMap=( + ['sonar.sourceEncoding']="$ENCODING" + ['sonar.projectName']="$PROJECT_NAME" + ['sonar.projectKey']="$PROJECT_KEY" + ['sonar.sources']="$SOURCE_PATH" + ['sonar.projectBaseDir']="$SOURCE_PATH" + ['sonar.host.url']="$SERVER" + ['sonar.login']="$TOKEN" +) + +params='' case ${LANGUAGE} in Go) + for key in "${!paramsMap[@]}"; do + params+=" -D${key}=${paramsMap[$key]}" + done echo "Start to find go test reports." testReportFile=$(find . -name "coverage.out" | tr '\n' ',') if [[ -n ${testReportFile} ]]; then @@ -84,20 +91,22 @@ case ${LANGUAGE} in fi ;; Java) - echo "Start to find java bin files." - binFiles=$({ find . -name "*.jar"; find . -name "*.war"; } | tr '\n' ',') - if [[ -n ${binFiles} ]]; then - params="$params -Dsonar.java.binaries=$binFiles" - fi - - xmlFiles=$(find . -name "*.xml") - if [[ ${#xmlFiles[@]} -ne 0 ]]; then - reportXMLs=$(grep -l "