ci(soteria): publish per-test case metrics for flaky tracking
This commit is contained in:
parent
e4e087fe0f
commit
2a3c994cd8
21
Jenkinsfile
vendored
21
Jenkinsfile
vendored
@ -258,6 +258,21 @@ EOF
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
test_case_metrics_file="build/test-case-metrics.prom"
|
||||
: > "${test_case_metrics_file}"
|
||||
if [ -s build/go-test.json ]; then
|
||||
jq -r '
|
||||
select(.Test != null and (.Action=="pass" or .Action=="fail" or .Action=="skip"))
|
||||
| [.Test, (if .Action=="pass" then "passed" elif .Action=="fail" then "failed" else "skipped" end)]
|
||||
| @tsv
|
||||
' build/go-test.json 2>/dev/null \
|
||||
| while IFS=$'\t' read -r test_name test_status; do
|
||||
[ -n "${test_name}" ] || continue
|
||||
escaped_test="$(printf '%s' "${test_name}" | sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e ':a;N;$!ba;s/\n/\\n/g')"
|
||||
printf 'platform_quality_gate_test_case_result{suite="%s",test="%s",status="%s"} 1\n' \
|
||||
"${suite}" "${escaped_test}" "${test_status}" >> "${test_case_metrics_file}"
|
||||
done
|
||||
fi
|
||||
cat > build/pushgateway-metrics.prom <<METRICS
|
||||
# TYPE platform_quality_gate_runs_total counter
|
||||
platform_quality_gate_runs_total{suite="${suite}",status="ok"} ${ok_count}
|
||||
@ -282,6 +297,12 @@ soteria_quality_gate_checks_total{suite="${suite}",check="gate_glue",result="${g
|
||||
soteria_quality_gate_checks_total{suite="${suite}",check="sonarqube",result="${sonarqube_check}"} 1
|
||||
soteria_quality_gate_checks_total{suite="${suite}",check="supply_chain",result="${supply_chain_check}"} 1
|
||||
METRICS
|
||||
if [ -s "${test_case_metrics_file}" ]; then
|
||||
{
|
||||
echo "# TYPE platform_quality_gate_test_case_result gauge"
|
||||
cat "${test_case_metrics_file}"
|
||||
} >> build/pushgateway-metrics.prom
|
||||
fi
|
||||
if ! curl -fsS -X PUT --data-binary @build/pushgateway-metrics.prom "${gateway}/metrics/job/platform-quality-ci/suite/${suite}" >/dev/null; then
|
||||
echo "warning: metrics push failed for suite=${suite}" >&2
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user