feat: add OVH FTP preview deployment
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET="${1:-preview}"
|
||||
LOCAL_DIR="${2:-dist}"
|
||||
FTP_ENV_FILE="${FTP_ENV_FILE:-.env.ftp}"
|
||||
|
||||
load_env_file() {
|
||||
if [[ ! -f "$FTP_ENV_FILE" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
source "$FTP_ENV_FILE"
|
||||
set +a
|
||||
}
|
||||
|
||||
resolve_base_remote_dir() {
|
||||
if [[ -n "${FTP_REMOTE_DIR:-}" ]]; then
|
||||
printf '%s\n' "${FTP_REMOTE_DIR%/}"
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -n "${FTP_URL:-}" && "$FTP_URL" =~ ^ftp://[^@:/]+@[^:/]+(:([0-9]+))?(/.*)?$ ]]; then
|
||||
printf '%s\n' "${BASH_REMATCH[3]:-/www}"
|
||||
return
|
||||
fi
|
||||
|
||||
printf '%s\n' "/www"
|
||||
}
|
||||
|
||||
set_target_env() {
|
||||
local base_remote_dir
|
||||
base_remote_dir="$(resolve_base_remote_dir)"
|
||||
|
||||
case "$TARGET" in
|
||||
preview)
|
||||
export PUBLIC_SITE_URL="${PUBLIC_SITE_URL_PREVIEW:-https://www.lelectronrare.fr/preview/}"
|
||||
export FTP_REMOTE_DIR="${base_remote_dir}/preview"
|
||||
;;
|
||||
production|prod)
|
||||
export PUBLIC_SITE_URL="${PUBLIC_SITE_URL_PROD:-${PUBLIC_SITE_URL:-https://www.lelectronrare.fr/}}"
|
||||
export FTP_REMOTE_DIR="${base_remote_dir}"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown target: ${TARGET}. Use 'preview' or 'production'."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
unset FTP_URL
|
||||
}
|
||||
|
||||
main() {
|
||||
load_env_file
|
||||
set_target_env
|
||||
|
||||
if [[ "${DEPLOY_TARGET_SKIP_BUILD:-0}" != "1" ]]; then
|
||||
npm run build:external
|
||||
else
|
||||
echo "[deploy-ovh-ftp-target] Skipping build:external (already built)."
|
||||
fi
|
||||
|
||||
bash scripts/deploy-ovh-ftp.sh "$LOCAL_DIR"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user