Files
easyai/scripts/test-update-env-migrations.sh
T

58 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TMP_DIR="$(mktemp -d)"
cleanup() {
find "$TMP_DIR" -type f -delete
rmdir "$TMP_DIR"
}
trap cleanup EXIT
LEGACY_ENV_FILE="$TMP_DIR/legacy.env"
cat > "$LEGACY_ENV_FILE" <<'EOF'
EXISTING_VALUE=keep-me
SYSTEM_UPDATE_MODE=legacy_watchtower
COMPOSE_PROFILES=customer-profile
WATCHTOWER_CLEANUP=
EOF
bash "$PROJECT_ROOT/scripts/apply-update-env-migrations.sh" "$LEGACY_ENV_FILE" "$PROJECT_ROOT" >/dev/null
grep -qx 'EXISTING_VALUE=keep-me' "$LEGACY_ENV_FILE"
grep -qx 'SYSTEM_UPDATE_MODE=legacy_watchtower' "$LEGACY_ENV_FILE"
grep -qx 'COMPOSE_PROFILES=customer-profile' "$LEGACY_ENV_FILE"
grep -qx 'WATCHTOWER_CLEANUP=' "$LEGACY_ENV_FILE"
[ "$(wc -l < "$LEGACY_ENV_FILE" | tr -d ' ')" = "4" ]
ENV_FILE="$TMP_DIR/.env"
cat > "$ENV_FILE" <<'EOF'
EXISTING_VALUE=keep-me
COMPOSE_PROFILES=customer-profile
WATCHTOWER_CLEANUP=
EOF
bash "$PROJECT_ROOT/scripts/apply-update-env-migrations.sh" "$ENV_FILE" "$PROJECT_ROOT" >/dev/null
read_value() {
awk -v key="$1" 'index($0, key "=") == 1 { print substr($0, length(key) + 2); exit }' "$ENV_FILE"
}
[ "$(read_value EXISTING_VALUE)" = "keep-me" ]
[ "$(read_value SYSTEM_UPDATE_MODE)" = "managed" ]
[ "$(read_value COMPOSE_PROFILES)" = "customer-profile,managed-update" ]
[ "$(read_value WATCHTOWER_CLEANUP)" = "true" ]
[ "$(read_value WATCHTOWER_CORE_UPDATE_ENABLED)" = "false" ]
[ "$(read_value WATCHTOWER_UPDATE_TARGET)" = "easyai-updater" ]
[ "$(read_value SYSTEM_UPDATER_UPDATE_INTERVAL_SECONDS)" = "86400" ]
[ "$(read_value UPDATE_HEALTH_TIMEOUT_MS)" = "300000" ]
[ "$(read_value DOCKER_CONFIG_FILE)" = "/root/.docker/config.json" ]
[ "$(read_value EASYAI_DEPLOYMENT_SCHEMA_VERSION)" = "2" ]
cp "$ENV_FILE" "$TMP_DIR/first-run.env"
bash "$PROJECT_ROOT/scripts/apply-update-env-migrations.sh" "$ENV_FILE" "$PROJECT_ROOT" >/dev/null
cmp "$TMP_DIR/first-run.env" "$ENV_FILE"
echo "Update environment migration tests passed"