chore: bump mako to 1.3.11 #201
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
| # workflows/ci.yml | |
| # | |
| # CI | |
| # Run linting and test matrix across supported Python and PostgreSQL versions. | |
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: postgres | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: | | |
| uv venv --python "3.12" | |
| uv sync --extra test --extra dev | |
| - name: Ruff check | |
| run: uv run --no-sync ruff check . | |
| - name: Ruff format check | |
| run: uv run --no-sync ruff format --check . | |
| - name: Type check | |
| run: uv run --no-sync mypy paradedb | |
| - name: Check API coverage | |
| run: uv run --no-sync scripts/check_api_coverage.py | |
| - name: Wheel install smoke test | |
| run: bash scripts/smoke_wheel_install.sh | |
| matrix-tests: | |
| name: Python ${{ matrix.python-version }} / PG ${{ matrix.postgres-version }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Python version coverage (all on PG 18) | |
| - python-version: "3.10" | |
| postgres-version: "18" | |
| - python-version: "3.11" | |
| postgres-version: "18" | |
| - python-version: "3.12" | |
| postgres-version: "18" | |
| - python-version: "3.13" | |
| postgres-version: "18" | |
| - python-version: "3.14" | |
| postgres-version: "18" | |
| # Postgres compatibility coverage for supported older versions | |
| - python-version: "3.12" | |
| postgres-version: "15" | |
| - python-version: "3.12" | |
| postgres-version: "16" | |
| - python-version: "3.12" | |
| postgres-version: "17" | |
| services: | |
| paradedb: | |
| image: paradedb/paradedb:0.22.0-pg${{ matrix.postgres-version }} | |
| ports: | |
| - 5432:5432 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: postgres | |
| options: >- | |
| --health-cmd "pg_isready -U postgres -d postgres" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 12 | |
| env: | |
| PARADEDB_TEST_DSN: postgresql+psycopg://postgres:postgres@localhost:5432/postgres | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/postgres | |
| PGPASSWORD: postgres | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: | | |
| uv venv --python "${{ matrix.python-version }}" | |
| uv sync --extra test --extra dev | |
| - name: Install pg client | |
| run: sudo apt-get update && sudo apt-get install -y postgresql-client | |
| - name: Wait for ParadeDB | |
| run: | | |
| for i in {1..30}; do | |
| pg_isready -h localhost -p 5432 -U "$POSTGRES_USER" -d "$POSTGRES_DB" && exit 0 | |
| sleep 2 | |
| done | |
| echo "ParadeDB did not become ready" >&2 | |
| exit 1 | |
| - name: Run unit tests | |
| run: uv run --no-sync pytest tests/unit --cov=paradedb | |
| - name: Run integration tests | |
| run: uv run --no-sync pytest -m integration --cov=paradedb --cov-append --cov-report=xml | |
| - name: Upload to Codecov | |
| uses: codecov/codecov-action@v6 | |
| with: | |
| files: ./coverage.xml | |
| flags: sqlalchemy-paradedb,py${{ matrix.python-version }},pg${{ matrix.postgres-version }} | |
| fail_ci_if_error: false | |
| verbose: true | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Run examples | |
| run: | | |
| uv run --no-sync python examples/quickstart/quickstart.py | |
| uv run --no-sync python examples/autocomplete/autocomplete.py | |
| uv run --no-sync python examples/more_like_this/more_like_this.py | |
| uv run --no-sync python examples/faceted_search/faceted_search.py | |
| uv run --no-sync python examples/hybrid_rrf/hybrid_rrf.py | |
| uv run --no-sync python examples/rag/rag.py |