Files
AzerothAI/.github/workflows/full-verification.yml
T

83 lines
2.5 KiB
YAML

name: Full verification
on:
push:
branches:
- feature/ai-brain-router
workflow_dispatch:
jobs:
application:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 11.25.0
- uses: actions/setup-node@v4
with:
node-version: 22
- run: pnpm install --frozen-lockfile
- name: Core and simulation tests
run: node scripts/test-core.mjs
- name: Production build
run: pnpm build
- name: Validate deployment shell scripts
run: |
bash -n deploy/playable/*.sh
bash -n deploy/pc-lab/*.sh
- name: Validate Windows PowerShell helpers
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$files = Get-ChildItem deploy/pc-lab/*.ps1
foreach ($file in $files) {
$tokens = $null
$errors = $null
[System.Management.Automation.Language.Parser]::ParseFile($file.FullName, [ref]$tokens, [ref]$errors) | Out-Null
if ($errors.Count -gt 0) {
$errors | ForEach-Object { Write-Error $_.Message }
throw "PowerShell parse failed: $($file.Name)"
}
}
- name: Validate ALE bridge Lua syntax
run: |
sudo apt-get update -qq
sudo apt-get install -y lua5.4
luac5.4 -p ale/azerothai_bridge.lua
- name: Lint (advisory while prototype debt is cleaned up)
continue-on-error: true
run: pnpm lint
local-brain:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 11.25.0
- uses: actions/setup-node@v4
with:
node-version: 22
- run: pnpm install --frozen-lockfile
- name: Install Ollama
run: curl -fsSL https://ollama.com/install.sh | sh
- name: Start Ollama
run: |
nohup ollama serve >/tmp/ollama.log 2>&1 &
for i in {1..30}; do
if curl -fsS http://127.0.0.1:11434/api/tags >/dev/null; then exit 0; fi
sleep 2
done
cat /tmp/ollama.log
exit 1
- name: Pull Qwen3.5 4B
run: ollama pull qwen3.5:4b
- name: Run one real AzerothAI brain decision
env:
OLLAMA_URL: http://127.0.0.1:11434
MODEL: qwen3.5:4b
run: node scripts/smoke-brain.mjs