Skip to content

docs: add VGI logo, Query.Farm authorship & normalize copyright #1

docs: add VGI logo, Query.Farm authorship & normalize copyright

docs: add VGI logo, Query.Farm authorship & normalize copyright #1

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths-ignore: ['README.md']
pull_request:
branches: [main]
paths-ignore: ['README.md']
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.13"]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --all-extras
# Fixture parser tests, in-process scan-state round-trip, and the
# mock-server E2E. The `live` tests (real Wikipedia) are excluded from the
# gate so CI never depends on the network.
- name: Run unit tests
run: uv run --no-sync pytest -q -m "not live"
e2e-sql:
name: E2E SQL (DuckDB, mock-driven)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python 3.13
run: uv python install 3.13
- name: Install dependencies
run: uv sync --all-extras
- name: Install haybarn-unittest (sqllogictest runner)
run: uv tool install haybarn-unittest
# Starts a local mock MediaWiki server, points the worker's
# VGI_WIKIPEDIA_API_URL at it, and runs the worker as a real DuckDB
# subprocess. No keys, no cost, no live Wikipedia.
- name: Run SQL end-to-end tests
run: |
export PATH="$HOME/.local/bin:$PATH"
make test-sql
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Install dependencies
run: uv sync --all-extras
- name: Check formatting
run: uv run --no-sync ruff format --check .
- name: Check linting
run: uv run --no-sync ruff check .
- name: Type check
run: uv run --no-sync mypy vgi_wikipedia/