Some checks failed
AI Code Review / ai-review (pull_request) Failing after 2s
27 lines
836 B
Bash
27 lines
836 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
# GCP Cloud Storage backup upload
|
|
# Uses: gsutil (gcloud SDK)
|
|
# Env: GCS_BUCKET (e.g. gs://my-bucket)
|
|
|
|
BACKUP_FILE="${1:?Usage: $0 <backup-file>}"
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
|
KEY="gitea-dump-${TIMESTAMP}.zip"
|
|
|
|
echo "Uploading ${KEY}..."
|
|
gsutil cp "$BACKUP_FILE" "${GCS_BUCKET}/${KEY}"
|
|
echo "Upload complete."
|
|
|
|
# Prune backups older than 7 days — GCS lifecycle rules are preferred,
|
|
# but this works as a manual fallback
|
|
echo "Pruning backups older than 7 days..."
|
|
CUTOFF=$(date -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -v-7d +%Y-%m-%dT%H:%M:%SZ)
|
|
gsutil ls -l "${GCS_BUCKET}/" \
|
|
| grep 'gitea-dump-' \
|
|
| while read -r size date name; do
|
|
if [[ "$date" < "$CUTOFF" ]]; then
|
|
gsutil rm "$name" && echo "Deleted: ${name}"
|
|
fi
|
|
done
|
|
echo "Pruning complete."
|