PhysioJEPA / scripts /deploy_pod.sh
guychuk's picture
Upload folder using huggingface_hub
31e2456 verified
#!/usr/bin/env bash
# Deploy code+env to a RunPod pod and kick off pod_bootstrap.sh in nohup.
# Usage: deploy_pod.sh <host> <port> <model> <run_name>
set -euo pipefail
HOST="${1:?host}"; PORT="${2:?port}"; MODEL="${3:?model}"; RUN_NAME="${4:?run_name}"
KEY="$HOME/.runpod/ssh/RunPod-Key-Go"
SSH_OPTS=(-i "$KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=20)
TARBALL=/tmp/pj.tar.gz
REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)"
echo "[deploy] $HOST:$PORT model=$MODEL run=$RUN_NAME"
if [ ! -f "$TARBALL" ] || find "$REPO_DIR/src" -newer "$TARBALL" 2>/dev/null | grep -q .; then
echo "[deploy] (re)building tarball"
tar -czf "$TARBALL" \
--no-xattrs \
--exclude PhysioJEPA/.venv --exclude PhysioJEPA/.git \
--exclude PhysioJEPA/.agents --exclude PhysioJEPA/.claude \
--exclude PhysioJEPA/__pycache__ --exclude PhysioJEPA/runs \
--exclude PhysioJEPA/cache --exclude PhysioJEPA/docs/figures \
--exclude PhysioJEPA/docs/paperes \
--exclude '*/__pycache__' --exclude '*.pyc' \
-C "$(dirname "$REPO_DIR")" "$(basename "$REPO_DIR")"
fi
scp "${SSH_OPTS[@]}" -P "$PORT" "$TARBALL" "root@$HOST:/workspace/pj.tar.gz"
scp "${SSH_OPTS[@]}" -P "$PORT" "$REPO_DIR/.env" "root@$HOST:/workspace/.env"
ssh "${SSH_OPTS[@]}" -p "$PORT" "root@$HOST" \
'set -e; cd /workspace; if [ -d PhysioJEPA ]; then mv PhysioJEPA "PhysioJEPA.old.$$" && (rm -rf "PhysioJEPA.old.$$" 2>/dev/null &); fi; tar --no-same-owner -xzf pj.tar.gz && rm pj.tar.gz && ls PhysioJEPA | head'
ssh "${SSH_OPTS[@]}" -p "$PORT" "root@$HOST" \
"mkdir -p /workspace/runs && cd /workspace/PhysioJEPA && chmod +x scripts/pod_bootstrap.sh && \
nohup bash scripts/pod_bootstrap.sh $MODEL $RUN_NAME \
> /workspace/runs/$RUN_NAME.bootstrap.log 2>&1 & disown; \
echo BOOTSTRAP_STARTED; sleep 1"
echo "[deploy] launched, log at /workspace/runs/$RUN_NAME.bootstrap.log on pod"