57 lines
1.3 KiB
Bash
Executable File
57 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
ROOT="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)"
|
|
|
|
need_cmd() {
|
|
if ! command -v "$1" >/dev/null 2>&1; then
|
|
echo "missing required command: $1" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
need_cmd python3
|
|
need_cmd docker
|
|
need_cmd node
|
|
|
|
cd "$ROOT"
|
|
|
|
echo "[1/5] compile collector-service"
|
|
python3 -m compileall collector-service/app >/dev/null
|
|
|
|
echo "[2/5] validate docker compose"
|
|
docker compose config >/dev/null
|
|
|
|
echo "[3/5] validate n8n workflows"
|
|
python3 - <<'PY'
|
|
import json
|
|
import pathlib
|
|
|
|
for path in sorted(pathlib.Path("n8n/workflows").glob("*.json")):
|
|
with path.open() as handle:
|
|
json.load(handle)
|
|
print(f"workflow ok: {path.name}")
|
|
PY
|
|
|
|
echo "[4/5] validate web scripts"
|
|
for file in web/storyforge-web-v4/assets/app.js web/storyforge-web-v4/assets/storyforge-*.js; do
|
|
node --check "$file"
|
|
done
|
|
node --check scripts/douyin-browser-capture/control_panel.mjs
|
|
|
|
if [ "${STORYFORGE_SKIP_ANDROID:-0}" = "1" ]; then
|
|
echo "[5/5] skip android compile (STORYFORGE_SKIP_ANDROID=1)"
|
|
else
|
|
if command -v java >/dev/null 2>&1; then
|
|
echo "[5/5] compile android debug kotlin"
|
|
(
|
|
cd android-app
|
|
./gradlew :app:compileDebugKotlin >/dev/null
|
|
)
|
|
else
|
|
echo "[5/5] skip android compile (java not installed)"
|
|
fi
|
|
fi
|
|
|
|
echo "baseline checks passed"
|