Zum Inhalt

Self-hosted EPPA CI fallback

Forgejo Actions CI and Docs workflows are configured for the online self-hosted, quantlab runner. If Forgejo does not create new workflow runs, use this local fallback on the same machine to keep validation moving without weakening the test gate.

CI topology

Gate Trigger Playwright Smoke
PR / main CI (.github/workflows/ci.yml) Every PR and pushes to main, ci/**, issue-*, monorepo/** No — disabled (RUN_PLAYWRIGHT=0) No
Prod promotion (.github/workflows/prod-promotion.yml) Push to prod/release/** or manual dispatch Yes — full Playwright critical paths Yes — smoke-production.sh

The PR gate runs backend and frontend tests, typecheck, build, coverage (test:py:coverage + test:unit:coverage), and supply-chain audit. Playwright and E2E are intentionally excluded to keep PR feedback fast.

The prod-promotion workflow runs the complete battery (same as PR gate) plus Playwright E2E and post-deploy smoke checks. It is not triggered on every PR.

Running locally

Run the PR/main validation (no Playwright):

cd fronts/eppa
INSTALL_DEPS=1 INSTALL_PLAYWRIGHT=0 RUN_PLAYWRIGHT=0 npm run ci:selfhosted

Useful switches:

INSTALL_DEPS=0 npm run ci:selfhosted
RUN_PLAYWRIGHT=0 npm run ci:selfhosted
INSTALL_PLAYWRIGHT=0 npm run ci:selfhosted
PYTHON=python3 npm run ci:selfhosted

Run the full prod-promotion validation (with Playwright) when explicitly needed:

cd fronts/eppa
INSTALL_DEPS=1 INSTALL_PLAYWRIGHT=1 RUN_PLAYWRIGHT=1 npm run ci:selfhosted

Publish the result as a commit status after a successful local run:

cd fronts/eppa
scripts/publish-selfhosted-status.sh "$(git rev-parse HEAD)" success

The status context is self-hosted/local-ci. It is evidence that the same validation battery ran on the self-hosted machine; it is not a replacement for Forgejo Actions when Forgejo starts dispatching workflow runs again.

Run the docs validation fallback:

cd fronts/eppa
npm run docs:selfhosted

That command creates an isolated venv under /tmp/eppa-docs-venv by default, installs requirements-docs.txt, and runs mkdocs build --strict.