name: CI on: push: branches: - main pull_request: jobs: python-tests: name: Python tests (${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: - "3.10" - "3.11" steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Set up uv uses: astral-sh/setup-uv@v6 with: enable-cache: true - name: Install dependencies run: uv sync --extra dev - name: Run test suite run: uv run pytest -q python-quality: name: Python quality runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Set up uv uses: astral-sh/setup-uv@v6 with: enable-cache: true - name: Install dependencies run: uv sync --extra dev - name: Ruff run: uv run ruff check src tests scripts frontend-typecheck: name: Frontend typecheck runs-on: ubuntu-latest defaults: run: working-directory: frontend/terminal steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: frontend/terminal/package-lock.json - name: Install frontend dependencies run: npm ci - name: TypeScript check run: npx tsc --noEmit