name: CI on: pull_request: push: branches: [master] permissions: contents: read jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v6 with: version: "0.8.8" enable-cache: true - name: Set up Python run: uv python install 3.12 - name: Verify lockfile run: uv lock --check - name: Install locked dependencies run: uv sync --locked --group dev --python 3.12 - name: Lint and formatting run: | uv run ruff check nocobase_crm_mcp scripts tests uv run ruff format --check nocobase_crm_mcp scripts tests - name: Type check run: uv run mypy - name: Compile package run: uv run --python 3.12 python -m compileall -q nocobase_crm_mcp scripts - name: Run tests run: uv run --python 3.12 python -m unittest discover -s tests -v - name: Build distribution run: uv build - name: Audit dependencies run: uv run pip-audit