chore(deps): bump Lemonade Server to v11.0.0 (#2130) #243
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # NOTE: This workflow activates once #1297 (Strix Halo self-hosted runner) lands. | |
| # Until then it is validated out-of-band on Strix Halo class hardware. | |
| # The strix-halo runner is Windows. Python/uv setup goes through the | |
| # ./.github/actions/setup-venv composite action (the lab-runner convention, | |
| # see build_cpp.yml) which installs uv, creates .venv and puts it on PATH. | |
| # Inline `run:` steps use PowerShell — bash syntax (&&, \ continuation) is not | |
| # available there. | |
| name: Agent Behavior E2E | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - 'src/gaia/version.py' | |
| - '.github/actions/install-lemonade/**' | |
| - 'src/gaia/agents/builder/**' | |
| - 'src/gaia/agents/base/agent.py' | |
| - 'src/gaia/eval/behavior_harness.py' | |
| permissions: | |
| contents: read | |
| jobs: | |
| behavior-e2e: | |
| runs-on: [self-hosted, strix-halo] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Setup Python environment | |
| uses: ./.github/actions/setup-venv | |
| with: | |
| # [ui] carries fastapi/uvicorn + the RAG deps gaia.ui.server imports at | |
| # boot — the harness spawns that server, so [dev] alone fails at import. | |
| install-package: ".[dev,ui]" | |
| - name: Start Lemonade + run behavior E2E harness | |
| shell: powershell | |
| env: | |
| LEMONADE_BASE_URL: http://127.0.0.1:13305/api/v1 | |
| # Loopback server — bypass any runner proxy so Python requests reaches it. | |
| NO_PROXY: "localhost,127.0.0.1" | |
| run: | | |
| # Start Lemonade AND run the harness in a SINGLE PowerShell session. | |
| # The Lemonade server (a detached Start-Process child) does not survive | |
| # a GitHub Actions step boundary, so starting it in a separate step made | |
| # the harness skip with "Lemonade server not reachable" even though the | |
| # model loaded. start-lemonade.ps1 itself notes it must run in one | |
| # session "to avoid process lifecycle issues"; test_examples.yml does | |
| # the same. The previous `gaia init --skip-lemonade` step also blocked | |
| # on an interactive prompt when the server was down (#1639). | |
| try { | |
| .\installer\scripts\start-lemonade.ps1 ` | |
| -ModelName "Qwen3.5-35B-A3B-GGUF" ` | |
| -Port 13305 ` | |
| -CtxSize 32768 ` | |
| -InitWaitTime 15 | |
| python -m pytest tests/integration/eval/test_behavior_e2e.py ` | |
| -m real_model -v -rs --tb=short ` | |
| --basetemp="${{ runner.temp }}\pytest-behavior" | |
| if ($LASTEXITCODE -ne 0) { throw "behavior E2E harness failed" } | |
| } | |
| finally { | |
| if ($env:LEMONADE_PROCESS_ID) { | |
| Write-Host "Stopping Lemonade server (pid $env:LEMONADE_PROCESS_ID)..." | |
| Stop-Process -Id $env:LEMONADE_PROCESS_ID -Force -ErrorAction SilentlyContinue | |
| } | |
| } | |
| - name: Upload artifacts on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: behavior-e2e-artifacts | |
| path: ${{ runner.temp }}/pytest-behavior/**/artifacts/** |