9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
79 lines
2.5 KiB
Bash
Executable File
79 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
BACKEND_ID=""
|
|
ENV_MODE="false"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--backend)
|
|
BACKEND_ID="${2:-}"
|
|
shift 2
|
|
;;
|
|
--env)
|
|
ENV_MODE="true"
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z "$BACKEND_ID" ]]; then
|
|
echo "Missing required argument: --backend" >&2
|
|
exit 1
|
|
fi
|
|
|
|
CONTRACT_FILE="${ROOT_DIR}/config/backends/${BACKEND_ID}.json"
|
|
if [[ ! -f "$CONTRACT_FILE" ]]; then
|
|
echo "Backend contract not found: $CONTRACT_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$ENV_MODE" == "true" ]]; then
|
|
PYTHON_CMD="python3"
|
|
if [[ -f "$ROOT_DIR/lib/python-cmd.sh" ]]; then
|
|
. "$ROOT_DIR/lib/python-cmd.sh"
|
|
PYTHON_CMD="$(ods_detect_python_cmd)"
|
|
elif command -v python >/dev/null 2>&1; then
|
|
PYTHON_CMD="python"
|
|
fi
|
|
|
|
"$PYTHON_CMD" - "$CONTRACT_FILE" <<'PY'
|
|
import json
|
|
import sys
|
|
|
|
contract = json.load(open(sys.argv[1], "r", encoding="utf-8"))
|
|
|
|
def out(key, value):
|
|
safe = str(value).replace("\\", "\\\\").replace('"', '\\"')
|
|
print(f'{key}="{safe}"')
|
|
|
|
out("BACKEND_CONTRACT_ID", contract.get("id", ""))
|
|
out("BACKEND_LLM_ENGINE", contract.get("llm_engine", ""))
|
|
out("BACKEND_SERVICE_NAME", contract.get("service_name", ""))
|
|
out("BACKEND_PUBLIC_API_PORT", contract.get("public_api_port", ""))
|
|
out("BACKEND_PUBLIC_HEALTH_URL", contract.get("public_health_url", ""))
|
|
out("BACKEND_PROVIDER_NAME", contract.get("provider_name", ""))
|
|
out("BACKEND_PROVIDER_URL", contract.get("provider_url", ""))
|
|
out("BACKEND_CONTRACT_FILE", sys.argv[1])
|
|
|
|
runtime = contract.get("runtime", {})
|
|
lemonade = runtime.get("lemonade", {}) if isinstance(runtime, dict) else {}
|
|
out("BACKEND_LEMONADE_CONTAINER_IMAGE", lemonade.get("container_image", ""))
|
|
out("BACKEND_LEMONADE_WINDOWS_VERSION", lemonade.get("windows_version", ""))
|
|
out("BACKEND_LEMONADE_WINDOWS_MSI_FILE", lemonade.get("windows_msi_file", ""))
|
|
out("BACKEND_LEMONADE_WINDOWS_EXECUTABLE", lemonade.get("windows_executable", ""))
|
|
out("BACKEND_LEMONADE_API_PORT", lemonade.get("api_port", ""))
|
|
out("BACKEND_LEMONADE_HEALTH_PATH", lemonade.get("health_path", ""))
|
|
out("BACKEND_LEMONADE_LINUX_BACKEND", lemonade.get("linux_backend", ""))
|
|
out("BACKEND_LEMONADE_WINDOWS_BACKEND", lemonade.get("windows_backend", ""))
|
|
PY
|
|
else
|
|
cat "$CONTRACT_FILE"
|
|
fi
|