Skip to content

ci: add cross-platform test matrix (ubuntu, macos, windows × py3.11, py3.12) #131

@Gradata

Description

@Gradata

Problem

.github/workflows/sdk-publish.yml only runs on v* tag push, and it only runs the build — it does not run pytest. There is no test CI on push or PR at all. That means:

  • Regressions land on main with no machine-verified signal.
  • Platform-specific code paths (fcntl on POSIX, msvcrt on Windows) are never exercised outside a single developer's local box.
  • macOS parity is assumed via code-path equivalence with Linux, not verified.

Proposed

Add .github/workflows/test.yml that runs on:

  • push to main
  • pull_request targeting main

Matrix: { os: [ubuntu-latest, macos-latest, windows-latest], python: [\"3.11\", \"3.12\"] } — 6 jobs.

Each job:

  1. Checkout
  2. Setup Python
  3. Install uv
  4. cd Gradata && uv sync --all-extras --dev
  5. uv run pytest tests/ -q

Acceptance

  • Workflow exists and is green on a PR touching src/gradata/
  • Windows and macOS skip counts are documented (expected: 2 POSIX on Windows, 2 msvcrt on macOS/Linux)
  • Failure on any OS blocks merge (branch protection follow-up, out of scope for this PR)

Out of scope

  • Coverage gates
  • Lint / type check jobs (separate workflow)
  • Branch protection rule changes (repo settings)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions