name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: name: Lint & Format runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v4 with: version: "latest" - name: Set up Python run: uv python install 3.13 - name: Install dependencies run: uv sync --all-extras - name: Run Ruff linter run: uv run ruff check . - name: Run Ruff formatter check run: uv run ruff format --check . typecheck: name: Type Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v4 with: version: "latest" - name: Set up Python run: uv python install 3.13 - name: Install dependencies run: uv sync --all-extras - name: Run ty type checker run: uv run ty check duckdb_loader/ test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v4 with: version: "latest" - name: Set up Python run: uv python install 3.13 - name: Install dependencies run: uv sync --all-extras - name: Install duckdb-loader package run: uv pip install -e duckdb_loader/ - name: Run tests with coverage run: uv run pytest tests/ -v --tb=short --cov=duckdb_loader --cov-report=term-missing --cov-report=xml - name: Upload coverage uses: codecov/codecov-action@v4 with: files: ./coverage.xml fail_ci_if_error: false continue-on-error: true