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.
Summary
All CI workflows (
build.yaml,build-push-to-main.yaml,build-tag.yaml,validate_examples.yaml) currently run exclusively onubuntu-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.yamlworkflow (at minimum for PR and merge group triggers):Considerations
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.