chore: import upstream snapshot with attribution
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
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
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
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
|
||||
Reference in New Issue
Block a user