deploy.sh: backup retention used ls on a glob that can be empty, killing the deploy under pipefail

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-10 16:53:57 +03:30
parent a9cccc6550
commit d10e3e4c9f

View File

@@ -302,8 +302,10 @@ PYBACKUP
# کپیِ واقعیِ داده این‌جا نیست: کپیِ زنده روی سرورِ دیگر است (ops/pgbackup/).
step "نگه‌داریِ بکاپ‌ها"
if [ -d .deploy-backups ]; then
for pattern in 'local-changes-*.patch' 'local-commits-*.patch'; do
ls -1t .deploy-backups/$pattern 2>/dev/null | tail -n +4 | xargs -r rm -f --
# find و نه ls: ls بی‌فایل خطا می‌دهد و با pipefail کلِ دیپلو را بی‌پیام می‌کشت.
for prefix in local-changes- local-commits-; do
find .deploy-backups -maxdepth 1 -type f -name "${prefix}*.patch" -printf '%T@ %p\n' \
| sort -rn | tail -n +4 | cut -d' ' -f2- | xargs -r rm -f --
done
find .deploy-backups -maxdepth 1 -type f ! -name 'db-before-deploy-*' ! -name 'local-changes-*' \
! -name 'local-commits-*' -mtime +30 -print -delete | sed 's/^/ پاک شد: /'