quality(soteria): always emit coverage summary even on earlier gate failures

This commit is contained in:
codex 2026-04-20 13:51:33 -03:00
parent 30dc9a1a6d
commit b74c5b6ca3

View File

@ -6,6 +6,7 @@ BUILD_DIR="${ROOT_DIR}/build"
mkdir -p "${BUILD_DIR}"
cd "${ROOT_DIR}"
overall_rc=0
echo "[quality] gofmt"
mapfile -t go_files < <(find cmd internal -type f -name '*.go' ! -name '*_test.go' ! -path '*/ui-dist/*' | sort)
@ -14,49 +15,67 @@ if ((${#go_files[@]})); then
if [[ -n "${gofmt_diff}" ]]; then
echo "gofmt check failed. Run: gofmt -w <files>"
echo "${gofmt_diff}"
exit 1
overall_rc=1
fi
fi
echo "[quality] structure hygiene"
python3 "${ROOT_DIR}/scripts/structure_hygiene_check.py" --root "${ROOT_DIR}"
if ! python3 "${ROOT_DIR}/scripts/structure_hygiene_check.py" --root "${ROOT_DIR}"; then
overall_rc=1
fi
echo "[quality] doc hygiene"
printf 'failed\n' > "${BUILD_DIR}/docs-naming.status"
python3 "${ROOT_DIR}/scripts/doc_hygiene_check.py" \
if python3 "${ROOT_DIR}/scripts/doc_hygiene_check.py" \
--root "${ROOT_DIR}" \
--waivers "${ROOT_DIR}/scripts/doc_hygiene_waivers.tsv"
printf 'ok\n' > "${BUILD_DIR}/docs-naming.status"
--waivers "${ROOT_DIR}/scripts/doc_hygiene_waivers.tsv"; then
printf 'ok\n' > "${BUILD_DIR}/docs-naming.status"
else
overall_rc=1
fi
echo "[quality] LOC hygiene"
python3 "${ROOT_DIR}/scripts/loc_hygiene_check.py" \
if ! python3 "${ROOT_DIR}/scripts/loc_hygiene_check.py" \
--root "${ROOT_DIR}" \
--max-lines 500 \
--waivers "${ROOT_DIR}/scripts/loc_hygiene_waivers.tsv" \
--summary-json "${BUILD_DIR}/loc-summary.json"
--summary-json "${BUILD_DIR}/loc-summary.json"; then
overall_rc=1
fi
echo "[quality] code smell"
bash "${ROOT_DIR}/scripts/code_smell_check.sh"
if ! bash "${ROOT_DIR}/scripts/code_smell_check.sh"; then
overall_rc=1
fi
echo "[quality] ui test framework policy"
python3 "${ROOT_DIR}/scripts/ui_test_framework_check.py" --root "${ROOT_DIR}"
if ! python3 "${ROOT_DIR}/scripts/ui_test_framework_check.py" --root "${ROOT_DIR}"; then
overall_rc=1
fi
echo "[quality] go vet"
go vet ./...
if ! go vet ./...; then
overall_rc=1
fi
echo "[quality] unit tests + coverage"
set +e
go test -json -coverprofile="${BUILD_DIR}/coverage.out" ./... > "${BUILD_DIR}/go-test.json"
test_rc=$?
set -e
if [ "${test_rc}" -ne 0 ]; then
overall_rc=1
fi
echo "[quality] coverage hygiene"
python3 "${ROOT_DIR}/scripts/coverage_hygiene_check.py" \
if ! python3 "${ROOT_DIR}/scripts/coverage_hygiene_check.py" \
--root "${ROOT_DIR}" \
--coverprofile "${BUILD_DIR}/coverage.out" \
--min-total 39.5 \
--baseline "${ROOT_DIR}/scripts/coverage_hygiene_baseline.tsv" \
--summary-json "${BUILD_DIR}/coverage-summary.json"
--summary-json "${BUILD_DIR}/coverage-summary.json"; then
overall_rc=1
fi
python3 - <<'PY'
import json
@ -79,4 +98,4 @@ if cov_path.exists():
(build / "quality-summary.json").write_text(json.dumps(summary, indent=2), encoding="utf-8")
PY
exit "${test_rc}"
exit "${overall_rc}"