From bea38de1bdda68bbcc2a865f1bcd5bce8e2a521e Mon Sep 17 00:00:00 2001 From: Nicola Vetrini Date: Mon, 7 Jul 2025 17:28:26 +0200 Subject: [PATCH] automation/eclair: Make report browsing URL configurable. Currently, the URL where the ECLAIR MISRA C scan reports are saved is hardcoded; making it configurable allows multiple runners and storage servers to be used without resorting to publishing all artifacts to the same report server. Additionally, reports will be accessed publicly by using a proxy, therefore the address that needs to be printed in GitLab analysis logs is that of the public url, rather than the location where they are stored. Signed-off-by: Alessandro Zucchelli Signed-off-by: Nicola Vetrini [stefano: remove unneeded exports] Signed-off-by: Stefano Stabellini Reviewed-by: Anthony PERARD --- .../eclair_analysis/ECLAIR/action.helpers | 10 +++---- .../eclair_analysis/ECLAIR/action.settings | 30 ++++++++++++++----- automation/gitlab-ci/analyze.yaml | 1 + 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/automation/eclair_analysis/ECLAIR/action.helpers b/automation/eclair_analysis/ECLAIR/action.helpers index 9d4ae1f979..3a4c9d2b28 100644 --- a/automation/eclair_analysis/ECLAIR/action.helpers +++ b/automation/eclair_analysis/ECLAIR/action.helpers @@ -58,7 +58,7 @@ summary() { ;; esac - currentDbReportsUrl="${eclairReportUrlPrefix}/fs${jobDir}/PROJECT.ecd;/by_service.html#service&kind" + currentDbReportsUrl="${eclairResultsUrl}/fs${jobDir}/PROJECT.ecd;/by_service.html#service&kind" if [ -z "${newReports}" ]; then fixedMsg="No fixed reports as there is no baseline" unfixedMsg="Unfixed reports: ${unfixedReports}" @@ -69,11 +69,11 @@ summary() { unfixedMsg="Unfixed reports: ${unfixedReports} [new: ${newReports}]" case "${event}" in pull_request | auto_pull_request) - referenceDbReportsUrl="${eclairReportUrlPrefix}/fs${jobDir}/base/PROJECT.ecd;/by_service.html#service&kind" + referenceDbReportsUrl="${eclairResultsUrl}/fs${jobDir}/base/PROJECT.ecd;/by_service.html#service&kind" reference_kind=base ;; push) - referenceDbReportsUrl="${eclairReportUrlPrefix}/fs${jobDir}/prev/PROJECT.ecd;/by_service.html#service&kind" + referenceDbReportsUrl="${eclairResultsUrl}/fs${jobDir}/prev/PROJECT.ecd;/by_service.html#service&kind" reference_kind=previous ;; *) @@ -92,7 +92,7 @@ summary() { ${fixedMsg}${eol} ${unfixedMsg} ${eol} - +

${jobHeadline}

Browse analysis summary @@ -106,7 +106,7 @@ EOF fi cat <"${summaryTxt}" - + Analysis Summary diff --git a/automation/eclair_analysis/ECLAIR/action.settings b/automation/eclair_analysis/ECLAIR/action.settings index 1577368b61..a990437725 100644 --- a/automation/eclair_analysis/ECLAIR/action.settings +++ b/automation/eclair_analysis/ECLAIR/action.settings @@ -14,9 +14,6 @@ autoPRRepository="${AUTO_PR_REPOSITORY:-}" # Customized autoPRBranch="${AUTO_PR_BRANCH:-}" -# Customized -artifactsRoot=/var/local/eclair - case "${ci}" in github) # To be customized @@ -166,16 +163,35 @@ esac ECLAIR_BIN_DIR=/opt/bugseng/eclair/bin/ -artifactsDir="${artifactsRoot}/xen-project.ecdf/${repository}/ECLAIR_${ANALYSIS_KIND}" +# Artifacts URL served by the eclair_report server +if [ -z "${ECLAIR_ECDF_DIR}" ] +then + echo "WARNING: No ecdf dir supplied, using default" +fi +artifactsEcdfDir="${ECLAIR_ECDF_DIR:-/var/local/eclair/xen-project.ecdf}" +artifactsDir="${artifactsEcdfDir}/${repository}/ECLAIR_${ANALYSIS_KIND}" subDir="${subDir}${variantSubDir}" jobHeadline="${jobHeadline}${variantHeadline}" -# Customized -eclairReportUrlPrefix=https://saas.eclairit.com:3787 +# Remote eclair_report hosting server +if [ -z "${ECLAIR_REPORT_HOST}" ] +then + echo "WARNING: No eclair_report host supplied, using default" +fi + +# URL to browse eclair reports +if [ -z "${ECLAIR_ANALYSIS_RESULTS}" ] +then + echo "WARNING: No URL to browse analysis results is set, using default" +fi + +eclairReportHost="${ECLAIR_REPORT_HOST:-saas.eclairit.com:3787}" +eclairReportUrlPrefix="https://${eclairReportHost}" +eclairResultsUrl="${ECLAIR_ANALYSIS_RESULTS:-${eclairReportUrlPrefix}}" jobDir="${artifactsDir}/${subDir}/${jobId}" updateLog="${analysisOutputDir}/update.log" cleanRegressionsLog="${analysisOutputDir}/clean_regressions.log" commentLog="${analysisOutputDir}/comment.json" -indexHtmlUrl="${eclairReportUrlPrefix}/fs${jobDir}/index.html" +indexHtmlUrl="${eclairResultsUrl}/fs${jobDir}/index.html" summaryTxt="${analysisOutputDir}/summary.txt" diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml index 5b00b9f25c..9102362601 100644 --- a/automation/gitlab-ci/analyze.yaml +++ b/automation/gitlab-ci/analyze.yaml @@ -8,6 +8,7 @@ ENABLE_ECLAIR_BOT: "n" AUTO_PR_BRANCH: "staging" AUTO_PR_REPOSITORY: "xen-project/xen" + ECLAIR_ANALYSIS_RESULTS: "https://eclair-analysis-logs.xenproject.org" script: - ./automation/scripts/eclair 2>&1 | tee "${LOGFILE}" artifacts: