name: CI on: push: branches: ["master", "main"] pull_request: jobs: engine: name: Engine — lint / typecheck / test runs-on: ubuntu-latest defaults: run: working-directory: packages/engine steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install Poetry run: pipx install poetry - name: Install deps run: poetry install - name: Lint run: poetry run ruff check . - name: Typecheck run: poetry run mypy src/ - name: Test run: poetry run pytest --no-header -q api: name: API — lint / typecheck / test runs-on: ubuntu-latest defaults: run: working-directory: packages/api steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install Poetry run: pipx install poetry - name: Install deps run: poetry install - name: Lint run: poetry run ruff check . - name: Typecheck run: poetry run mypy src/ - name: Test run: poetry run pytest --no-header -q web: name: Web — typecheck / lint / build runs-on: ubuntu-latest defaults: run: working-directory: packages/web steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - uses: pnpm/action-setup@v4 with: version: 10 - name: Install deps run: pnpm install - name: Typecheck run: pnpm type-check - name: Lint run: pnpm lint || true # non-fatal until eslint is fully configured - name: Build run: pnpm build