forked from sagnik/Project_Velocity
feat: Oracle Canvas Component Schema and Qwen 3.6 integration (#31)
Co-authored-by: Sagnik <sagnik7896@gmail.com> Reviewed-on: sagnik/Project_Velocity#31
This commit is contained in:
@@ -12,6 +12,12 @@ CURRENT_DIR="${CURRENT_DIR:-$SERVE_ROOT/current}"
|
||||
STATE_DIR="${STATE_DIR:-$APP_ROOT/state}"
|
||||
REVISION_FILE="${REVISION_FILE:-$STATE_DIR/current_revision.txt}"
|
||||
PERSISTENT_VIDEO_DIR="${PERSISTENT_VIDEO_DIR:-$APP_ROOT/shared/videos}"
|
||||
BACKEND_SERVICE="${BACKEND_SERVICE:-desineuron-velocity-backend}"
|
||||
BACKEND_HEALTH_URL="${BACKEND_HEALTH_URL:-http://127.0.0.1:8001/health}"
|
||||
BACKEND_HEALTH_TIMEOUT_S="${BACKEND_HEALTH_TIMEOUT_S:-60}"
|
||||
RUN_BACKEND_RESTART="${RUN_BACKEND_RESTART:-1}"
|
||||
RUN_DB_MIGRATIONS="${RUN_DB_MIGRATIONS:-0}"
|
||||
DB_MIGRATION_CMD="${DB_MIGRATION_CMD:-}"
|
||||
|
||||
mkdir -p "$APP_ROOT" "$STATE_DIR" "$SERVE_ROOT" "$PERSISTENT_VIDEO_DIR"
|
||||
|
||||
@@ -25,11 +31,28 @@ if ! command -v npm >/dev/null 2>&1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
echo "curl is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$REPO_DIR/.git" ]; then
|
||||
git clone "$REPO_URL" "$REPO_DIR"
|
||||
fi
|
||||
|
||||
git -C "$REPO_DIR" fetch --all --prune
|
||||
REMOTE_REVISION="$(git -C "$REPO_DIR" rev-parse "origin/$BRANCH")"
|
||||
CURRENT_REVISION=""
|
||||
if [ -f "$REVISION_FILE" ]; then
|
||||
CURRENT_REVISION="$(tr -d '\r\n' < "$REVISION_FILE")"
|
||||
fi
|
||||
|
||||
if [ -n "$CURRENT_REVISION" ] && [ "$CURRENT_REVISION" = "$REMOTE_REVISION" ]; then
|
||||
date -u +"%Y-%m-%dT%H:%M:%SZ" > "$STATE_DIR/last_check_utc.txt"
|
||||
echo "No new revision on origin/$BRANCH. Current revision: $CURRENT_REVISION"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git -C "$REPO_DIR" checkout "$BRANCH"
|
||||
git -C "$REPO_DIR" reset --hard "origin/$BRANCH"
|
||||
|
||||
@@ -51,7 +74,30 @@ if [ -d "$PERSISTENT_VIDEO_DIR" ] && [ "$(find "$PERSISTENT_VIDEO_DIR" -maxdepth
|
||||
cp -a "$PERSISTENT_VIDEO_DIR"/. "$CURRENT_DIR/videos"/
|
||||
fi
|
||||
|
||||
git -C "$REPO_DIR" rev-parse HEAD > "$REVISION_FILE"
|
||||
if [ "$RUN_DB_MIGRATIONS" = "1" ] && [ -n "$DB_MIGRATION_CMD" ]; then
|
||||
echo "Running DB migration command..."
|
||||
bash -lc "$DB_MIGRATION_CMD"
|
||||
fi
|
||||
|
||||
if [ "$RUN_BACKEND_RESTART" = "1" ]; then
|
||||
echo "Restarting backend service: $BACKEND_SERVICE"
|
||||
systemctl restart "$BACKEND_SERVICE"
|
||||
fi
|
||||
|
||||
echo "Waiting for backend health: $BACKEND_HEALTH_URL"
|
||||
deadline=$(( $(date +%s) + BACKEND_HEALTH_TIMEOUT_S ))
|
||||
until curl -fsS "$BACKEND_HEALTH_URL" >/dev/null 2>&1; do
|
||||
if [ "$(date +%s)" -ge "$deadline" ]; then
|
||||
echo "Backend health check failed for $BACKEND_HEALTH_URL" >&2
|
||||
if command -v journalctl >/dev/null 2>&1; then
|
||||
journalctl -u "$BACKEND_SERVICE" -n 80 --no-pager || true
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
printf '%s\n' "$REMOTE_REVISION" > "$REVISION_FILE"
|
||||
date -u +"%Y-%m-%dT%H:%M:%SZ" > "$STATE_DIR/last_deploy_utc.txt"
|
||||
|
||||
echo "Deployed revision $(cat "$REVISION_FILE") to $CURRENT_DIR"
|
||||
|
||||
Reference in New Issue
Block a user