fix(ops): бэкапы — +x на deploy-скриптах при деплое tradein, тихий s3 cp (#3005) (#3019)
All checks were successful
Deploy / changes (push) Successful in 9s
Deploy / build-backend (push) Has been skipped
Deploy / build-worker (push) Has been skipped
Deploy / build-frontend (push) Has been skipped
Deploy / deploy-caddy (push) Has been skipped
Deploy Trade-In / changes (push) Successful in 13s
Deploy Trade-In / build-browser (push) Successful in 41s
Deploy / deploy (push) Successful in 1m38s
Deploy / deploy-status (push) Successful in 2s
Deploy / perimeter-smoke (push) Successful in 11s
Deploy Trade-In / build-frontend (push) Successful in 2m38s
Deploy Trade-In / test (push) Successful in 3m47s
Deploy Trade-In / build-backend (push) Successful in 34s
Deploy Trade-In / deploy (push) Successful in 1m38s
Deploy Trade-In / deploy-status (push) Successful in 1s
Deploy Trade-In / perimeter-smoke (push) Successful in 9s

This commit is contained in:
bot-backend 2026-08-21 10:35:10 +00:00
parent ccf84b4adc
commit 95db3f44c8
3 changed files with 11 additions and 4 deletions

View file

@ -689,6 +689,11 @@ jobs:
chmod 600 .env.runtime
set -a; source .env.runtime; set +a
# Re-assert +x на deploy-скриптах (#3005, по образцу deploy.yml ops/*.sh из #71).
# Cron зовёт backup-tradein-db.sh через `bash`, так что бит ему не нужен —
# но любой другой вызов сырым путём не должен зависеть от git-режима файла.
chmod +x deploy/*.sh 2>/dev/null || true
# External network для Caddy (он в основном gendesign-стеке)
docker network inspect gendesign_shared >/dev/null 2>&1 \
|| docker network create gendesign_shared

View file

@ -168,7 +168,7 @@ if [[ -n "${S3_ENDPOINT:-}" && -n "${S3_BUCKET:-}" && -n "${S3_ACCESS_KEY:-}" &&
-v "$LOCAL_BACKUP_DIR":/backup:ro \
amazon/aws-cli:latest \
--endpoint-url "$S3_ENDPOINT" \
s3 cp "/backup/$(basename "$f")" "s3://${S3_BUCKET}/"
s3 cp --no-progress "/backup/$(basename "$f")" "s3://${S3_BUCKET}/"
done
log "S3 upload OK"
else

View file

@ -5,8 +5,10 @@
# Запускается из cron на прод-хосте. pg_dump идёт через `docker exec`
# (локальный сокет внутри контейнера — пароль не нужен).
#
# Crontab пример (ежедневно в 04:30 UTC):
# 30 4 * * * /opt/gendesign/tradein-mvp/deploy/backup-tradein-db.sh >> /tmp/tradein-backup.log 2>&1
# Crontab (ежедневно в 04:30 по времени хоста = 01:30 UTC; на проде именно так, #3005).
# Вызывать через `bash <path>`, а не сырым путём — тогда потеря бита +x не сломает
# бэкап молча (инцидент #71 у основного бэкапа):
# 30 4 * * * bash /opt/gendesign/tradein-mvp/deploy/backup-tradein-db.sh >> /tmp/tradein-backup.log 2>&1
#
# Restore:
# gunzip -c tradein-YYYYMMDD-HHMMSS.sql.gz | \
@ -133,7 +135,7 @@ if [[ -n "${S3_ENDPOINT:-}" && -n "${S3_BUCKET:-}" && -n "${S3_ACCESS_KEY:-}" &&
-v "$BACKUP_DIR":/backup:ro \
amazon/aws-cli:latest \
--endpoint-url "$S3_ENDPOINT" \
s3 cp "/backup/$(basename "$f")" "s3://${S3_BUCKET}/"
s3 cp --no-progress "/backup/$(basename "$f")" "s3://${S3_BUCKET}/"
done
log "Выгрузка в S3 ok"
else