From b58adbbe3ddb6c72c5e29b5a78508428970c8e1d Mon Sep 17 00:00:00 2001 From: bot-backend Date: Thu, 13 Aug 2026 17:45:34 +0500 Subject: [PATCH] =?UTF-8?q?ci:=20=D0=BF=D0=BE=D0=B4=D0=B1=D0=BE=D1=80=20?= =?UTF-8?q?=D0=B1=D0=B8=D0=BB=D0=B4=D0=B5=D1=80=D0=BE=D0=B2=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5=D0=BD=20=D0=BF=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B4=20`bash=20-e`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `docker rm -f ... && reaped=$((reaped+1))` отдельным оператором: при неудаче удаления вся конструкция возвращает ненулевой код, и под `bash -e` (режим `run:` в Actions) это уронило бы шаг — то есть уборка мусора могла бы уронить деплой. Переписано на if/else с явным сообщением в лог. Логика порога проверена на РЕАЛЬНЫХ датах с прода (20 контейнеров): убрало бы 18, оставило 2 (сегодняшние, возрастом ~1ч). Refs #2869 --- .forgejo/workflows/deploy-tradein.yml | 18 +++++++++++++++--- .forgejo/workflows/deploy.yml | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/deploy-tradein.yml b/.forgejo/workflows/deploy-tradein.yml index 8223db58..50311309 100644 --- a/.forgejo/workflows/deploy-tradein.yml +++ b/.forgejo/workflows/deploy-tradein.yml @@ -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)) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index ef74594b..ebdcc75f 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -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))