Spaces:
Sleeping
Sleeping
Update entrypoint.sh
Browse files- entrypoint.sh +23 -11
entrypoint.sh
CHANGED
|
@@ -2,8 +2,8 @@
|
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
: "${GITHUB_REPO_URL:=https://github.com/chourmovs/RFPmaster.git}"
|
| 5 |
-
: "${GITHUB_TOKEN:=}" #
|
| 6 |
-
: "${API_MODULE:=rfp_api_app}"
|
| 7 |
: "${API_APP_ATTR:=app}"
|
| 8 |
: "${WORKSPACE:=/home/user/workspace}"
|
| 9 |
|
|
@@ -12,20 +12,18 @@ CLONE_DIR="${WORKSPACE}/RFPmaster"
|
|
| 12 |
echo "[startup] WORKSPACE=${WORKSPACE}"
|
| 13 |
echo "[startup] target clone dir: ${CLONE_DIR}"
|
| 14 |
|
| 15 |
-
# clone repo (
|
| 16 |
if [ ! -d "${CLONE_DIR}" ]; then
|
| 17 |
-
echo "[git] Cloning repo…"
|
| 18 |
if [ -n "${GITHUB_TOKEN}" ]; then
|
| 19 |
-
|
| 20 |
-
git
|
| 21 |
-
clone --depth=1 "${GITHUB_REPO_URL}" "${CLONE_DIR}"
|
| 22 |
else
|
| 23 |
-
git
|
|
|
|
| 24 |
fi
|
| 25 |
else
|
| 26 |
-
echo "[git]
|
| 27 |
-
git -C "${CLONE_DIR}"
|
| 28 |
-
git -C "${CLONE_DIR}" reset --hard origin/HEAD || true
|
| 29 |
fi
|
| 30 |
|
| 31 |
git config --global --add safe.directory "${CLONE_DIR}" || true
|
|
@@ -40,5 +38,19 @@ fi
|
|
| 40 |
export PYTHONPATH="${CLONE_DIR}:${PYTHONPATH:-}"
|
| 41 |
cd "${CLONE_DIR}"
|
| 42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
echo "[uvicorn] launching ${API_MODULE}:${API_APP_ATTR} on 0.0.0.0:7860"
|
| 44 |
exec uvicorn "${API_MODULE}:${API_APP_ATTR}" --host 0.0.0.0 --port 7860
|
|
|
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
: "${GITHUB_REPO_URL:=https://github.com/chourmovs/RFPmaster.git}"
|
| 5 |
+
: "${GITHUB_TOKEN:=}" # à mettre dans Secrets si repo privé
|
| 6 |
+
: "${API_MODULE:=rfp_api_app}" # <<< module exposant `app = FastAPI(...)`
|
| 7 |
: "${API_APP_ATTR:=app}"
|
| 8 |
: "${WORKSPACE:=/home/user/workspace}"
|
| 9 |
|
|
|
|
| 12 |
echo "[startup] WORKSPACE=${WORKSPACE}"
|
| 13 |
echo "[startup] target clone dir: ${CLONE_DIR}"
|
| 14 |
|
| 15 |
+
# clone repo (privé si token présent)
|
| 16 |
if [ ! -d "${CLONE_DIR}" ]; then
|
|
|
|
| 17 |
if [ -n "${GITHUB_TOKEN}" ]; then
|
| 18 |
+
echo "[git] cloning with token"
|
| 19 |
+
git clone "https://${GITHUB_TOKEN}@${GITHUB_REPO_URL#https://}" "${CLONE_DIR}"
|
|
|
|
| 20 |
else
|
| 21 |
+
echo "[git] cloning public"
|
| 22 |
+
git clone "${GITHUB_REPO_URL}" "${CLONE_DIR}"
|
| 23 |
fi
|
| 24 |
else
|
| 25 |
+
echo "[git] repo already present, pulling latest"
|
| 26 |
+
git -C "${CLONE_DIR}" pull --rebase || true
|
|
|
|
| 27 |
fi
|
| 28 |
|
| 29 |
git config --global --add safe.directory "${CLONE_DIR}" || true
|
|
|
|
| 38 |
export PYTHONPATH="${CLONE_DIR}:${PYTHONPATH:-}"
|
| 39 |
cd "${CLONE_DIR}"
|
| 40 |
|
| 41 |
+
echo "[check] ensuring ${API_MODULE}.py exists at repo root…"
|
| 42 |
+
if ! python - << 'PY'
|
| 43 |
+
import importlib, sys
|
| 44 |
+
m = sys.argv[1]
|
| 45 |
+
importlib.import_module(m)
|
| 46 |
+
print(f"[check] import {m}: OK")
|
| 47 |
+
PY
|
| 48 |
+
"${API_MODULE}"
|
| 49 |
+
then
|
| 50 |
+
echo "[ERROR] Cannot import module ${API_MODULE}. Make sure ${API_MODULE}.py is committed at repo root."
|
| 51 |
+
ls -la
|
| 52 |
+
exit 1
|
| 53 |
+
fi
|
| 54 |
+
|
| 55 |
echo "[uvicorn] launching ${API_MODULE}:${API_APP_ATTR} on 0.0.0.0:7860"
|
| 56 |
exec uvicorn "${API_MODULE}:${API_APP_ATTR}" --host 0.0.0.0 --port 7860
|