Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
66 lines
2.0 KiB
Bash
Executable File
66 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Script to snapshot wrangler and postgres state for dotcom app
|
|
#
|
|
# USAGE:
|
|
# ./snapshot-state.sh [snapshot-name]
|
|
#
|
|
# DESCRIPTION:
|
|
# Creates a snapshot of the current state of:
|
|
# - Wrangler state (from sync-worker/.wrangler)
|
|
# - Postgres database volume (docker_tlapp_pgdata)
|
|
#
|
|
# Snapshots are stored in .snapshots/ directory and can be restored
|
|
# using the restore-state.sh script.
|
|
#
|
|
# EXAMPLES:
|
|
# ./snapshot-state.sh # Creates snapshot with timestamp name
|
|
# ./snapshot-state.sh my-backup # Creates snapshot named "my-backup"
|
|
#
|
|
# REQUIREMENTS:
|
|
# - Docker must be running
|
|
# - Postgres volume must exist (docker_tlapp_pgdata)
|
|
# - Wrangler state directory should exist (sync-worker/.wrangler)
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SNAPSHOTS_DIR="$SCRIPT_DIR/.snapshots"
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
SNAPSHOT_NAME="${1:-$TIMESTAMP}"
|
|
SNAPSHOT_DIR="$SNAPSHOTS_DIR/$SNAPSHOT_NAME"
|
|
|
|
echo "Creating snapshot: $SNAPSHOT_NAME"
|
|
mkdir -p "$SNAPSHOT_DIR"
|
|
|
|
# Snapshot wrangler state
|
|
echo "Snapshotting wrangler state..."
|
|
WRANGLER_DIR="$SCRIPT_DIR/sync-worker/.wrangler"
|
|
if [ -d "$WRANGLER_DIR" ]; then
|
|
tar -czf "$SNAPSHOT_DIR/wrangler-state.tar.gz" -C "$SCRIPT_DIR/sync-worker" .wrangler
|
|
echo " ✓ Wrangler state saved to $SNAPSHOT_DIR/wrangler-state.tar.gz"
|
|
else
|
|
echo " ⚠ No wrangler state found at $WRANGLER_DIR"
|
|
fi
|
|
|
|
# Snapshot postgres volume
|
|
echo "Snapshotting postgres volume..."
|
|
VOLUME_NAME="docker_tlapp_pgdata"
|
|
|
|
# Check if volume exists
|
|
if ! docker volume inspect "$VOLUME_NAME" > /dev/null 2>&1; then
|
|
echo " ⚠ Docker volume $VOLUME_NAME not found"
|
|
else
|
|
# Export postgres volume to tar
|
|
docker run --rm \
|
|
-v "$VOLUME_NAME:/data" \
|
|
-v "$SNAPSHOT_DIR:/backup" \
|
|
alpine \
|
|
tar -czf /backup/postgres-data.tar.gz -C /data .
|
|
|
|
echo " ✓ Postgres data saved to $SNAPSHOT_DIR/postgres-data.tar.gz"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Snapshot complete: $SNAPSHOT_NAME"
|
|
echo "Location: $SNAPSHOT_DIR"
|