ci: подбор билдеров не должен падать под bash -e
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped

`docker rm -f ... && reaped=$((reaped+1))` отдельным оператором: при неудаче
удаления вся конструкция возвращает ненулевой код, и под `bash -e` (режим
`run:` в Actions) это уронило бы шаг — то есть уборка мусора могла бы уронить
деплой. Переписано на if/else с явным сообщением в лог.

Логика порога проверена на РЕАЛЬНЫХ датах с прода (20 контейнеров):
убрало бы 18, оставило 2 (сегодняшние, возрастом ~1ч).

Refs #2869
This commit is contained in:
bot-backend 2026-08-13 17:45:34 +05:00
parent 9a43f00a5e
commit b58adbbe3d
2 changed files with 30 additions and 6 deletions

View file

@ -246,7 +246,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))
@ -332,7 +336,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))
@ -432,7 +440,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))

View file

@ -90,7 +90,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))
@ -167,7 +171,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))
@ -244,7 +252,11 @@ jobs:
age_h=$(( (now - ts) / 3600 ))
if [ "$age_h" -ge 6 ]; then
echo "buildx: убираю протёкший билдер $c (возраст ${age_h} ч)"
docker rm -f "$c" >/dev/null && reaped=$((reaped+1))
if docker rm -f "$c" >/dev/null 2>&1; then
reaped=$((reaped+1))
else
echo "buildx: не удалось убрать $c (не фатально)"
fi
docker volume rm "${c}_state" >/dev/null 2>&1 || true
else
kept=$((kept+1))