Skip to content

fix(extensions-portal): add tooltip explanations to core and incompatible badges #587

fix(extensions-portal): add tooltip explanations to core and incompatible badges

fix(extensions-portal): add tooltip explanations to core and incompatible badges #587

Workflow file for this run

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: dream-server
steps:
- name: Checkout
uses: actions/checkout@v4
- 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 DREAM_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"; }
dream_progress() { true; }
}
# Generate minimal .env with all expected keys
cat > .env << ENVEOF
# Test .env for tier ${{ matrix.tier }}
WEBUI_SECRET=test-secret-changeme
N8N_USER=admin
N8N_PASS=test-pass-changeme
OPENCLAW_TOKEN=sk-test-openclaw-token
DREAM_VERSION=2.1.0
DREAM_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