The project uses GitHub Actions for continuous integration. The workflow is defined in .github/workflows/check-main.yml.
The workflow runs on:
- Push to
mainordevbranches - Pull requests targeting
mainordev - Manual trigger (
workflow_dispatch)
The two jobs run in parallel.
Runs in the ./api directory.
- Install uv — Sets up the uv package manager with caching enabled.
- Set up Python 3.13 — Installs Python 3.13 (pinned to stay within the
>= 3.11, < 3.14constraint). - Install the project — Installs all dependencies from the lockfile (
uv sync --locked --all-extras --dev). - Lint check — Runs ruff to check for linting errors.
- Type check — Runs ty for static type checking.
Runs in the ./frontend directory.
- Install Node 24 — Sets up Node.js.
- Cache node_modules — Caches dependencies keyed on
package-lock.jsonhash. - Install dependencies — Runs
npm cifor a clean install. - Lint — Runs ESLint with Prettier integration (
npm run lint). - Build — Runs TypeScript compilation and Vite build (
npm run build).