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
119 lines
3.8 KiB
YAML
119 lines
3.8 KiB
YAML
name: Validate .env Schema
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
|
|
jobs:
|
|
env-schema:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
tier: [0, 1, 2, 3, 4]
|
|
name: "tier-${{ matrix.tier }}-env-validation"
|
|
defaults:
|
|
run:
|
|
working-directory: ods
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
|
|
- name: Install jq
|
|
run: sudo apt-get install -y -qq jq
|
|
|
|
- name: Generate .env for tier ${{ matrix.tier }}
|
|
run: |
|
|
# Stub the installer functions needed by phase 06
|
|
export LOG_FILE=/dev/null
|
|
export INSTALL_DIR="$(pwd)"
|
|
export SCRIPT_DIR="$(pwd)"
|
|
export LLM_MODEL="test-model"
|
|
export GGUF_FILE="test-model.gguf"
|
|
export MAX_CONTEXT=4096
|
|
export N_GPU_LAYERS=0
|
|
export GPU_BACKEND="cpu"
|
|
export ODS_TIER="${{ matrix.tier }}"
|
|
export HW_CLASS="cpu"
|
|
|
|
# Generate a .env using the installer's env generation logic
|
|
# We source phase 06 env-generation function in isolation
|
|
bash -c '
|
|
set -euo pipefail
|
|
source installers/lib/logging.sh 2>/dev/null || {
|
|
log() { echo "[INFO] $1"; }
|
|
warn() { echo "[WARN] $1"; }
|
|
error() { echo "[ERROR] $1"; }
|
|
ai() { echo "$1"; }
|
|
ai_ok() { echo "$1"; }
|
|
ai_warn() { echo "$1"; }
|
|
ods_progress() { true; }
|
|
}
|
|
# Generate minimal .env with all expected keys
|
|
cat > .env << ENVEOF
|
|
# Test .env for tier ${{ matrix.tier }}
|
|
WEBUI_SECRET=test-secret-changeme
|
|
SEARXNG_SECRET=test-searxng-secret
|
|
N8N_USER=admin@ods.local
|
|
N8N_PASS=test-pass-changeme
|
|
OPENCLAW_TOKEN=sk-test-openclaw-token
|
|
ODS_VERSION=2.1.0
|
|
ODS_TIER=${{ matrix.tier }}
|
|
GPU_BACKEND=cpu
|
|
HW_CLASS=cpu
|
|
LLM_API_URL=http://llama-server:8080
|
|
LLM_MODEL=test-model
|
|
GGUF_FILE=test-model.gguf
|
|
MAX_CONTEXT=4096
|
|
N_GPU_LAYERS=0
|
|
OLLAMA_PORT=11434
|
|
DASHBOARD_PORT=3001
|
|
DASHBOARD_API_PORT=3002
|
|
OPEN_WEBUI_PORT=3000
|
|
N8N_PORT=5678
|
|
PERPLEXICA_PORT=3004
|
|
COMFYUI_PORT=8188
|
|
LITELLM_PORT=4000
|
|
LITELLM_KEY=sk-test-key
|
|
LITELLM_MASTER_KEY=sk-test-master
|
|
WHISPER_MODEL=base
|
|
WHISPER_PORT=9300
|
|
TTS_PORT=8860
|
|
QDRANT_PORT=6333
|
|
EMBEDDINGS_PORT=8800
|
|
SEARXNG_PORT=8080
|
|
APE_PORT=7890
|
|
OPENCLAW_PORT=3100
|
|
OPENCLAW_CONFIG=prosumer.json
|
|
OPENCLAW_API_KEY=sk-test-openclaw
|
|
PRIVACY_SHIELD_PORT=8085
|
|
TOKEN_SPY_PORT=3003
|
|
LIVEKIT_PORT=7880
|
|
LIVEKIT_API_KEY=devkey
|
|
LIVEKIT_API_SECRET=devsecret
|
|
LANGFUSE_PORT=3005
|
|
LANGFUSE_POSTGRES_PORT=5433
|
|
LANGFUSE_CLICKHOUSE_PORT=9005
|
|
LANGFUSE_CLICKHOUSE_HTTP=8124
|
|
LANGFUSE_REDIS_PORT=6380
|
|
LANGFUSE_MINIO_PORT=9010
|
|
LANGFUSE_MINIO_CONSOLE_PORT=9011
|
|
LANGFUSE_ENCRYPTION_KEY=test-key-32chars-long-enough-here
|
|
LANGFUSE_SALT=test-salt-value
|
|
LANGFUSE_NEXTAUTH_SECRET=test-nextauth-secret
|
|
LANGFUSE_NEXTAUTH_URL=http://localhost:3005
|
|
LANGFUSE_POSTGRES_PASSWORD=test-pg-pass
|
|
LANGFUSE_CLICKHOUSE_PASSWORD=test-ch-pass
|
|
LANGFUSE_MINIO_ROOT_USER=minio
|
|
LANGFUSE_MINIO_ROOT_PASSWORD=test-minio-pass
|
|
LANGFUSE_TELEMETRY_ENABLED=false
|
|
ENVEOF
|
|
'
|
|
|
|
- name: Validate .env against schema
|
|
run: |
|
|
bash scripts/validate-env.sh .env .env.schema.json
|