Skip to content

test: add Windows and macOS to CI test matrix #998

@sicoyle

Description

@sicoyle

Summary

All CI workflows (build.yaml, build-push-to-main.yaml, build-tag.yaml, validate_examples.yaml) currently run exclusively on ubuntu-latest. We should add Windows and macOS runners to catch platform-specific issues.

Motivation

The Python SDK is used across Linux, macOS, and Windows environments. Without CI coverage on Windows and macOS, platform-specific bugs (path handling, OS-level dependencies, signal handling, etc.) can slip through undetected.

Proposal

Add an OS matrix strategy to the build.yaml workflow (at minimum for PR and merge group triggers):

strategy:
  fail-fast: false
  matrix:
    os: [ubuntu-latest, windows-latest, macos-latest]
    python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}

Considerations

  • Lint job: Can likely remain Linux-only since formatting/linting is platform-independent.
  • Build/test job: Should run on all three OSes.
  • validate_examples.yaml: Uses Dapr runtime + CLI binaries, so expanding to Windows/macOS requires ensuring those binaries are available for each platform. This can be a follow-up.
  • Cost: The expanded matrix increases CI minutes. We may want to limit the Python version range on non-Linux platforms (e.g., only test 3.10 and 3.13 on Windows/macOS) to keep costs reasonable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1github_actionsPull requests that update Github_actions codegood first issueGood for newcomerssize/S1 week of work

    Type

    Projects

    Status

    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions