diff --git a/scripts/backend-optimization-sop.sh b/scripts/backend-optimization-sop.sh index 98c0510..c5e6765 100755 --- a/scripts/backend-optimization-sop.sh +++ b/scripts/backend-optimization-sop.sh @@ -122,6 +122,14 @@ extract_counter() { printf '%s' "${value:-0}" } +collect_sop_metrics() { + rg -o --no-filename \ + -g '*.log' \ + -g '*.trx' \ + 'SOP_METRIC [A-Za-z0-9_]+=[0-9]+' \ + "$LOG_DIR" "$TRX_DIR" 2>/dev/null | sort -u +} + assert_no_skipped_tests() { local target=$1 local found=0 @@ -342,7 +350,7 @@ write_summary() { "$stage" "$started" "$ended" "$duration" "$exit_code" "$log" "$command" done printf '\n## Metrics\n\n' - if ! rg --no-filename 'SOP_METRIC [A-Za-z0-9_]+=[0-9]+' "$LOG_DIR" -g '*.log' 2>/dev/null | sort -u; then + if ! collect_sop_metrics; then printf 'No SOP_METRIC lines were produced.\n' fi printf '\n## Evidence\n\n' diff --git a/tests/BuildFlow.Architecture.Tests/BackendOptimizationSopTests.cs b/tests/BuildFlow.Architecture.Tests/BackendOptimizationSopTests.cs index c665e80..acf93ee 100644 --- a/tests/BuildFlow.Architecture.Tests/BackendOptimizationSopTests.cs +++ b/tests/BuildFlow.Architecture.Tests/BackendOptimizationSopTests.cs @@ -77,6 +77,8 @@ public sealed class BackendOptimizationSopTests Assert.Contains("--logger \"trx;LogFileName=", script, StringComparison.Ordinal); Assert.Contains("--results-directory \"$TRX_DIR\"", script, StringComparison.Ordinal); Assert.Contains("assert_no_skipped_tests", script, StringComparison.Ordinal); + Assert.Contains("collect_sop_metrics", script, StringComparison.Ordinal); + Assert.Contains("\"$LOG_DIR\" \"$TRX_DIR\"", script, StringComparison.Ordinal); Assert.Contains("SOP_METRIC", script, StringComparison.Ordinal); Assert.Contains("summary.md", script, StringComparison.Ordinal); Assert.Contains("date -u +%Y%m%dT%H%M%SZ", script, StringComparison.Ordinal);