mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-07-16 20:50:18 +00:00
ci: add headless browser smoke test (runtime brick-class gate) (#3231)
Boots the real server.py agent-free and loads the key pages in headless Chromium, failing on any console error or uncaught JS exception. Catches the runtime-JS brick class (const-reassign #3162, function/window collision #2715/#2771) that node --check, ESLint, and the mocked pytest suite cannot see because they only manifest when a real browser executes the page. Credential-free: strips *_API_KEY from the env, drives no real model, needs no secrets. Runs on every PR + push via .github/workflows/browser-smoke.yml. Co-authored-by: nesquena-hermes <[email protected]>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
name: Browser smoke
|
||||
|
||||
# Headless page-load smoke: boots the real server.py (agent-free) and loads the
|
||||
# key pages in Chromium, failing on any console error or uncaught JS exception.
|
||||
# This catches the runtime-JS brick class (const-reassign, function/window
|
||||
# collision) that `node --check`, ESLint, and the mocked pytest suite cannot
|
||||
# see — they only manifest when a real browser executes the page.
|
||||
#
|
||||
# No secrets, no credentials: the server boots agent-free and the smoke script
|
||||
# strips every *_API_KEY from the environment before launch.
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
browser-smoke:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
cache: 'pip'
|
||||
cache-dependency-path: |
|
||||
**/requirements*.txt
|
||||
**/pyproject.toml
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install "pyyaml>=6.0" playwright
|
||||
# Install only the Chromium browser + its system deps.
|
||||
python -m playwright install --with-deps chromium
|
||||
|
||||
- name: Run browser smoke
|
||||
run: python tests/browser_smoke.py
|
||||
Reference in New Issue
Block a user