Skip to content

feat(operators): add GroupBy for many→one reduction, with logical-type and provenance fixes (NPIPE-204) #1035

feat(operators): add GroupBy for many→one reduction, with logical-type and provenance fixes (NPIPE-204)

feat(operators): add GroupBy for many→one reduction, with logical-type and provenance fixes (NPIPE-204) #1035

Workflow file for this run

name: Run Tests
on:
push:
branches: [main, dev, extension-type-system]
pull_request:
workflow_dispatch: # Allows manual triggering
jobs:
test:
needs: license-check
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # required: hatch-vcs needs full tag history
- name: Install uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y graphviz libgraphviz-dev
- name: Install dependencies
run: uv sync --locked --all-extras --dev --python ${{ matrix.python-version }}
- name: Run tests
run: uv run --python ${{ matrix.python-version }} pytest -v -m "not postgres" --cov=src --cov-report=term-missing --cov-report=xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
spiral-integration:
runs-on: ubuntu-latest
# Only run on push/manual trigger — not on PRs — to avoid consuming SpiralDB
# resources on every review cycle.
# Requires SPIRAL_WORKLOAD_ID secret; fails loudly if absent so missing
# credentials don't silently drop coverage.
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
needs: test
permissions:
id-token: write # required to request a GitHub OIDC token for SpiralDB auth
contents: read
env:
SPIRAL_WORKLOAD_ID: ${{ secrets.SPIRAL_WORKLOAD_ID }}
SPIRAL_INTEGRATION_TESTS: "1"
SPIRAL_PROJECT_ID: ${{ vars.SPIRAL_PROJECT_ID || 'test-orcapod-362211' }}
SPIRAL_SERVER_URL: ${{ vars.SPIRAL_SERVER_URL || 'http://api.spiraldb.dev' }}
steps:
- name: Check for SPIRAL_WORKLOAD_ID
if: env.SPIRAL_WORKLOAD_ID == ''
run: |
echo "::error::SPIRAL_WORKLOAD_ID secret is not set. SpiralDB integration tests cannot run. Configure the secret or investigate why it is missing."
exit 1
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # required: hatch-vcs needs full tag history
- name: Install uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- name: Set up Python 3.11
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y graphviz libgraphviz-dev
- name: Install dependencies
run: uv sync --locked --all-extras --dev --python "3.11"
- name: Run SpiralDB integration tests
run: uv run --python "3.11" pytest tests/test_databases/test_spiraldb_connector_integration.py -v
license-check:
uses: ./.github/workflows/_license-check.yml
dependency-review:
name: Dependency review
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Dependency review
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
with:
deny-licenses: >-
GPL-2.0-only, GPL-2.0-or-later,
GPL-3.0-only, GPL-3.0-or-later,
AGPL-3.0-only, AGPL-3.0-or-later,
LGPL-2.0-only, LGPL-2.0-or-later,
LGPL-2.1-only, LGPL-2.1-or-later,
LGPL-3.0-only, LGPL-3.0-or-later