fix(ci): не валить джобу на неудачной уборке временного чекаута
All checks were successful
Deploy / test (push) Successful in 2m33s
Deploy / deploy (push) Successful in 15m1s

Найден реальный root cause, почему ни один деплой не проходил с 11 августа:
джоба test честно проходила линт (ruff+mypy) и все 112 тестов ("All checks
passed!", "Все юнит-тесты прошли"), но затем падала на шаге уборки — rm -rf
временной директории не мог удалить mypy/pytest-кэш, созданный ВНУТРИ Docker-
контейнеров от root (docker run без --user). Обычный пользователь раннера не
может удалить root-owned файлы → rm возвращает ненулевой код → джоба падает →
deploy пропускается (needs: test) — при том что код был полностью исправен.

Починено: rm -rf ... || true в обоих шагах уборки (test и deploy). Чистка
временной папки — best-effort, не критерий готовности кода.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jze9
2026-08-24 17:07:46 +05:00
parent b471ec767a
commit 251be1d77b

View File

@@ -38,7 +38,10 @@ jobs:
- name: Убрать временный чекаут
if: always()
run: rm -rf "${SRC:-/tmp/none}"
# Часть файлов (mypy/pytest кэш) создана внутри Docker-контейнеров от
# root — обычный пользователь раннера не может их удалить. Это не
# повод валить джобу: код уже проверен, чистка — best-effort.
run: rm -rf "${SRC:-/tmp/none}" || true
deploy:
needs: test # деплой только если юнит-тесты прошли
@@ -62,4 +65,7 @@ jobs:
- name: Убрать временный чекаут
if: always()
run: rm -rf "${SRC:-/tmp/none}"
# Часть файлов (mypy/pytest кэш) создана внутри Docker-контейнеров от
# root — обычный пользователь раннера не может их удалить. Это не
# повод валить джобу: код уже проверен, чистка — best-effort.
run: rm -rf "${SRC:-/tmp/none}" || true