Release v0.1.29 #76
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # --------------------------------------------------------------------------- | |
| # Python tests — matrix across Python 3.11, 3.12, 3.13 | |
| # --------------------------------------------------------------------------- | |
| test-python: | |
| name: Python ${{ matrix.python-version }} tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --all-packages --python ${{ matrix.python-version }} | |
| - name: Run provider tests (no API keys required) | |
| run: uv run pytest tests/providers/ -v --tb=short | |
| - name: Run unit tests | |
| run: uv run pytest tests/unit/ -v --tb=short | |
| # --------------------------------------------------------------------------- | |
| # Linting and type checking | |
| # --------------------------------------------------------------------------- | |
| lint: | |
| name: Lint + Type Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --all-packages | |
| - name: Ruff lint | |
| run: uv run ruff check packages/ tests/ | |
| - name: Ruff format check | |
| run: uv run ruff format --check packages/ tests/ | |
| # mypy strict checking disabled until type annotations are cleaned up | |
| # - name: mypy type check (core) | |
| # run: uv run mypy packages/core/src --config-file pyproject.toml | |
| # --------------------------------------------------------------------------- | |
| # Integration tests (run on push to main only, slower) | |
| # --------------------------------------------------------------------------- | |
| test-integration: | |
| name: Integration tests | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --all-packages | |
| - name: Run integration tests | |
| run: uv run pytest tests/integration/ -v --tb=short | |
| # --------------------------------------------------------------------------- | |
| # Web UI — lint and type check | |
| # --------------------------------------------------------------------------- | |
| test-web: | |
| name: Web UI lint + type check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| cache-dependency-path: package-lock.json | |
| - name: Install dependencies | |
| run: npm ci --workspace packages/web | |
| - name: Type check | |
| run: npm run type-check --workspace packages/web | |
| - name: Lint | |
| run: npm run lint --workspace packages/web |