ci: печатать код возврата pytest явно
All checks were successful
CI Trade-In / changes (pull_request) Successful in 13s
CI / changes (pull_request) Successful in 14s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 2m15s
CI / openapi-codegen-check (pull_request) Successful in 3m40s
CI / backend-tests (pull_request) Successful in 17m42s

Маркеры из #2872 показали, что оба шага после pytest отрабатывают успешно
(«coverage report вернул код 0», «Снести тестовый Postgres закончился
успешно»), и всё равно через 250 мс act объявляет job упавшей.

Значит остаётся один невидимый кандидат — сам шаг с pytest. Его сводка
(«4647 passed, 28 skipped») печатается ДО выхода процесса, поэтому
ненулевой код после зелёной сводки выглядит как «упало неизвестно где».

Печатаем код явно и сохраняем гейт через `exit $rc`. `|| rc=$?`, а не
отдельная строка: под `set -e` присваивание после упавшей команды не
выполнится.

Refs #2871
This commit is contained in:
bot-backend 2026-08-13 22:12:49 +05:00
parent a6e751da65
commit 9c58e20e4e

View file

@ -233,11 +233,18 @@ jobs:
# coverage.xml — артефакт для будущего Codecov/Coveralls upload (#68 badge).
# term-missing → видно непокрытые строки прямо в job-логе.
run: |
# #2871: код возврата печатаем ЯВНО. Сводка pytest («4647 passed») уходит
# в лог ДО выхода, поэтому зелёная сводка при ненулевом коде выглядит как
# «job упал неизвестно где» — а падал именно этот шаг. Гейт сохраняется:
# ниже `exit $rc`.
rc=0
uv run pytest -q -rs --ignore=tests/smoke \
--cov=app \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov-fail-under=65
--cov-fail-under=65 || rc=$?
echo "### pytest вернул код $rc"
exit $rc
- name: Coverage summary → job output
# Дешёвый human-readable итог. Бежит даже если gate упал (if: always) —