From 2a3c994cd88126ded023f4683751b6642ad14c8d Mon Sep 17 00:00:00 2001 From: codex Date: Mon, 20 Apr 2026 08:35:08 -0300 Subject: [PATCH] ci(soteria): publish per-test case metrics for flaky tracking --- Jenkinsfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index a6422b2..4c08de6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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 <> 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