Skip to content

Build and test

Real-browser smoke

The dashboard now has a separate Playwright suite against its built production web client, in desktop Chromium and mobile Chromium. API responses are isolated fixtures: navigation, reload, administrator/viewer boundaries, expired sessions, model stop/start, revision conflicts, log viewing and horizontal overflow are checked without touching an appliance or creating a model.

cd dashboard
pnpm install --frozen-lockfile
pnpm --filter @magicstick/dashboard-web exec playwright install chromium
pnpm test:browser

On Linux CI, installation uses playwright install --with-deps chromium. pnpm test:components retains the previous Vitest/jsdom application tests; pnpm test remains the unit/component suite. Neither is labeled a real-browser test. The dedicated browser CI runs for dashboard changes on PRs, main and develop, and supports manual dispatch. Failure screenshots/traces are retained for seven days and contain only synthetic fixture data.

The browser smoke does not prove Keycloak login, live Kubernetes reconciliation, GPU inference, actual capacity, firmware changes or application data migrations. Use the relevant live acceptance guide for those contracts.

Release Validation

Run the public release checklist before tagging a public version:

kubectl kustomize magic-cluster/flux/entrypoints/base
kubectl kustomize magic-cluster/flux/entrypoints/single-node
kubectl kustomize magic-cluster/platform/magicstick-operator
kubectl kustomize magic-cluster/apps/dashboard
kubectl kustomize examples/demo/infra-cluster/flux-bootstrap
gitleaks detect --source . --config .gitleaks.toml --no-git

Also run the value scans from public-release-checklist.md. Expected findings must be documented and safe.