Files

91 lines
3.4 KiB
PowerShell

$ErrorActionPreference = "Stop"
$PSNativeCommandUseErrorActionPreference = $true
python scripts/rc_readiness.py
Push-Location backend
try {
python -m compileall -q src tests
python -m ruff check src tests
python -m mypy src
python -m pytest -q
} finally {
Pop-Location
}
Push-Location frontend
try {
npm test
npm run build
} finally {
Pop-Location
}
node --test clients/typescript/modelforge-client.test.mjs
Push-Location node-agent
try {
python -m compileall -q src tests
python -m ruff check src tests
python -m mypy src
python -m pytest -q
} finally {
Pop-Location
}
Push-Location runtime-worker
try {
python -m compileall -q src tests
python -m ruff check src tests
python -m mypy src
python -m pytest -q
} finally {
Pop-Location
}
$composeValidationEnvironment = [ordered]@{
MODELFORGE_POSTGRES_DB = "modelforge"
VITE_API_BASE_URL = "http://127.0.0.1:8000"
MODELFORGE_CORS_ORIGINS = "http://127.0.0.1:3000"
MODELFORGE_VERSION = (Get-Content VERSION -Raw).Trim()
MODELFORGE_OPERATOR_API_KEY = "compose-validation-operator-not-for-production"
MODELFORGE_BACKUP_ENCRYPTION_KEY = "compose-validation-backup-not-for-production"
MODELFORGE_POSTGRES_ADMIN_PASSWORD = "compose-validation-admin"
MODELFORGE_MIGRATION_DB_PASSWORD = "compose-validation-owner"
MODELFORGE_RUNTIME_DB_PASSWORD = "compose-validation-runtime"
MODELFORGE_RUNTIME_DATABASE_URL = "postgresql+psycopg://modelforge_runtime:compose-validation-runtime@postgres:5432/modelforge"
MODELFORGE_MIGRATION_DATABASE_URL = "postgresql+psycopg://modelforge:compose-validation-owner@postgres:5432/modelforge"
MODELFORGE_AGENT_CA_CERT_PATH = "./validation-ca.crt"
MODELFORGE_AGENT_CONTROL_PLANE_HOST_ADDRESS = "192.0.2.10"
}
$previousComposeEnvironment = @{}
foreach ($name in $composeValidationEnvironment.Keys) {
$previousComposeEnvironment[$name] = [Environment]::GetEnvironmentVariable($name, "Process")
[Environment]::SetEnvironmentVariable(
$name,
$composeValidationEnvironment[$name],
"Process"
)
}
try {
docker compose --env-file .env.example -f docker-compose.yml -f docker-compose.production.yml config --quiet
docker compose --env-file .env.example -f docker-compose.yml -f docker-compose.backup.yml config --quiet
docker compose --env-file .env.example -f docker-compose.yml -f docker-compose.dr.yml config --quiet
docker compose --env-file .env.example -f docker-compose.yml -f docker-compose.node-recovery.yml config --quiet
docker compose --env-file .env.example config --quiet
docker compose --env-file .env.example -f docker-compose.yml -f docker-compose.gpu.yml config --quiet
docker compose --env-file .env.example -f docker-compose.node-agent.yml config --quiet
docker compose --env-file .env.example -f docker-compose.node-agent.yml -f docker-compose.runtime-worker.yml config --quiet
docker compose --env-file .env.example -f docker-compose.node-agent.yml -f docker-compose.node-agent.private-ca.yml config --quiet
docker compose --env-file .env.example -f docker-compose.node-agent.yml -f docker-compose.node-agent.private-ca.yml -f docker-compose.runtime-worker.yml -f docker-compose.runtime-worker.private-ca.yml config --quiet
} finally {
foreach ($name in $composeValidationEnvironment.Keys) {
[Environment]::SetEnvironmentVariable(
$name,
$previousComposeEnvironment[$name],
"Process"
)
}
}
Write-Host "ModelForge component and Compose checks passed."