docs: project docs, scripts, deployment configs, and evidence
This commit is contained in:
64
scripts/validate.ps1
Normal file
64
scripts/validate.ps1
Normal file
@@ -0,0 +1,64 @@
|
||||
# Project Robustness Validation Script
|
||||
$ErrorActionPreference = "Continue"
|
||||
$ProjectRoot = Split-Path -Parent $PSScriptRoot
|
||||
|
||||
Set-Location $ProjectRoot
|
||||
|
||||
Write-Host "======================================" -ForegroundColor Cyan
|
||||
Write-Host " Project Robustness Validation" -ForegroundColor Cyan
|
||||
Write-Host "======================================" -ForegroundColor Cyan
|
||||
|
||||
# 1. Check Go
|
||||
Write-Host "`n[1] Checking Go..." -ForegroundColor Yellow
|
||||
$goVersion = go version 2>$null
|
||||
if ($LASTEXITCODE -eq 0) { Write-Host "OK: $goVersion" -ForegroundColor Green }
|
||||
else { Write-Host "FAIL: Go not installed" -ForegroundColor Red; exit 1 }
|
||||
|
||||
# 2. Check dependencies
|
||||
Write-Host "`n[2] Checking dependencies..." -ForegroundColor Yellow
|
||||
go mod tidy 2>$null
|
||||
if ($LASTEXITCODE -eq 0) { Write-Host "OK: Dependencies OK" -ForegroundColor Green }
|
||||
else { Write-Host "WARN: Dependencies issue" -ForegroundColor Yellow }
|
||||
|
||||
# 3. Static analysis
|
||||
Write-Host "`n[3] Running vet..." -ForegroundColor Yellow
|
||||
go vet ./... 2>$null
|
||||
if ($LASTEXITCODE -eq 0) { Write-Host "OK: No static errors" -ForegroundColor Green }
|
||||
else { Write-Host "WARN: Static errors found" -ForegroundColor Yellow }
|
||||
|
||||
# 4. Build
|
||||
Write-Host "`n[4] Building..." -ForegroundColor Yellow
|
||||
if (-not (Test-Path "data")) { New-Item -ItemType Directory -Path "data" -Force | Out-Null }
|
||||
# Only build main packages, skip docs and e2e (they have special requirements)
|
||||
go build -o /dev/null ./cmd/server 2>$null
|
||||
if ($LASTEXITCODE -eq 0) { Write-Host "OK: Build success" -ForegroundColor Green }
|
||||
else { Write-Host "FAIL: Build failed" -ForegroundColor Red; exit 1 }
|
||||
|
||||
# 5. Test
|
||||
Write-Host "`n[5] Running tests..." -ForegroundColor Yellow
|
||||
# Skip docs (has swagger generation issues) and e2e (requires special setup)
|
||||
$packages = go list ./... | Where-Object { $_ -notmatch "/docs$|/e2e$" }
|
||||
go test -short $packages 2>$null
|
||||
if ($LASTEXITCODE -eq 0) { Write-Host "OK: Tests passed" -ForegroundColor Green }
|
||||
else { Write-Host "WARN: Some tests failed" -ForegroundColor Yellow }
|
||||
|
||||
# 6. Config check
|
||||
Write-Host "`n[6] Config file check..." -ForegroundColor Yellow
|
||||
if (Test-Path "configs/config.yaml") {
|
||||
$content = Get-Content "configs/config.yaml" -Raw
|
||||
if ($content -match "refresh_token_expire:\s*(\d+)d") {
|
||||
Write-Host "FAIL: JWT config uses unsupported 'd' unit" -ForegroundColor Red
|
||||
$hours = [int]$matches[1] * 24
|
||||
$content = $content -replace "refresh_token_expire:\s*\d+d", "refresh_token_expire: ${hours}h"
|
||||
Set-Content "configs/config.yaml" -Value $content -NoNewline
|
||||
Write-Host "FIXED: Changed to ${hours}h" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "OK: Config correct" -ForegroundColor Green
|
||||
}
|
||||
} else {
|
||||
Write-Host "WARN: Config file missing" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host "`n======================================" -ForegroundColor Cyan
|
||||
Write-Host " Validation Complete" -ForegroundColor Cyan
|
||||
Write-Host "======================================" -ForegroundColor Cyan
|
||||
Reference in New Issue
Block a user