Spaces:
Running
Running
| set -euo pipefail | |
| ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" | |
| source "$ROOT_DIR/scripts/venv_utils.sh" | |
| ENV_DIR="$ROOT_DIR" | |
| REPO_ID="${HF_SPACE_REPO_ID:-your-hf-username/polyguard-openenv}" | |
| DO_BUILD="true" | |
| DO_VALIDATE="true" | |
| CREATE_PR="false" | |
| DRY_RUN="false" | |
| PRIVATE="${HF_SPACE_PRIVATE:-false}" | |
| IMAGE_TAG="${HF_SPACE_IMAGE_TAG:-openenv-polyguard:latest}" | |
| while [[ $# -gt 0 ]]; do | |
| case "$1" in | |
| --repo-id) | |
| REPO_ID="$2" | |
| shift 2 | |
| ;; | |
| --env-dir) | |
| ENV_DIR="$2" | |
| shift 2 | |
| ;; | |
| --skip-build) | |
| DO_BUILD="false" | |
| shift | |
| ;; | |
| --skip-validate) | |
| DO_VALIDATE="false" | |
| shift | |
| ;; | |
| --create-pr) | |
| CREATE_PR="true" | |
| shift | |
| ;; | |
| --dry-run) | |
| DRY_RUN="true" | |
| shift | |
| ;; | |
| --private) | |
| PRIVATE="true" | |
| shift | |
| ;; | |
| --help|-h) | |
| cat <<'USAGE' | |
| Usage: bash scripts/deploy_space.sh [options] | |
| Options: | |
| --repo-id <username/repo> HF Space repo id (default: HF_SPACE_REPO_ID env var) | |
| --env-dir <path> OpenEnv directory (default: repo root) | |
| --skip-validate Skip `openenv validate` | |
| --skip-build Skip `openenv build` | |
| --create-pr Push as Pull Request | |
| --private Deploy as private space | |
| --dry-run Print commands only | |
| USAGE | |
| exit 0 | |
| ;; | |
| *) | |
| echo "Unknown flag: $1" | |
| exit 1 | |
| ;; | |
| esac | |
| done | |
| run_cmd() { | |
| if [[ "$DRY_RUN" == "true" ]]; then | |
| echo "[dry-run] $*" | |
| return 0 | |
| fi | |
| "$@" | |
| } | |
| echo "[deploy_space] repo_id=$REPO_ID env_dir=$ENV_DIR create_pr=$CREATE_PR dry_run=$DRY_RUN" | |
| ensure_polyguard_venv | |
| if ! sync_polyguard_requirements >/dev/null 2>&1; then | |
| echo "[deploy_space] dependency sync skipped (offline/restricted), continuing with existing environment" | |
| fi | |
| activate_polyguard_path | |
| if [[ "$DO_VALIDATE" == "true" ]]; then | |
| run_cmd openenv validate "$ENV_DIR" | |
| fi | |
| if [[ "$DO_BUILD" == "true" ]]; then | |
| run_cmd openenv build "$ENV_DIR" --tag "$IMAGE_TAG" | |
| fi | |
| PUSH_ARGS=(openenv push "$ENV_DIR" --repo-id "$REPO_ID") | |
| if [[ "$CREATE_PR" == "true" ]]; then | |
| PUSH_ARGS+=(--create-pr) | |
| fi | |
| if [[ "$PRIVATE" == "true" ]]; then | |
| PUSH_ARGS+=(--private) | |
| fi | |
| run_cmd "${PUSH_ARGS[@]}" | |
| echo "[deploy_space] completed" | |