Problem
The smoke-local job in .github/workflows/publish.yml is intended to install and exercise built wheels on five platform runners:
- Ubuntu x86_64
- Ubuntu ARM64
- macOS ARM64
- macOS x86_64
- Windows x86_64
In the PR workflow for #7, GitHub Actions instantiated only one local smoke job: Smoke (local) windows-latest py3.12. The five wheel builds and sdist succeeded, but four platform wheels were never installed and exercised by ci/smoke/smoke.py.
Observed run: https://github.com/microsoft/duroxide-python/actions/runs/30471618425
Likely cause
The matrix defines python: ["3.12"] as a base axis while defining os and shell through include. The include entries successively augment the same base combination instead of creating five complete matrix rows, leaving only the final Windows values.
Current shape:
matrix:
include:
- os: ubuntu-latest
shell: bash
# ...
- os: windows-latest
shell: pwsh
python: ["3.12"]
Define python in each included row (or use a normal OS axis plus an explicit shell mapping) so every tuple is distinct:
matrix:
include:
- os: ubuntu-latest
shell: bash
python: "3.12"
# ...
- os: windows-latest
shell: pwsh
python: "3.12"
Acceptance criteria
- PR workflows instantiate five
Smoke (local) <os> py3.12 jobs.
- Each job installs a matching locally built wheel in a fresh environment and runs
ci/smoke/smoke.py.
- A smoke failure on any platform prevents the publish job from running on release workflows.
- Registry smoke behavior remains unchanged.
Problem
The
smoke-localjob in.github/workflows/publish.ymlis intended to install and exercise built wheels on five platform runners:In the PR workflow for #7, GitHub Actions instantiated only one local smoke job:
Smoke (local) windows-latest py3.12. The five wheel builds and sdist succeeded, but four platform wheels were never installed and exercised byci/smoke/smoke.py.Observed run: https://github.com/microsoft/duroxide-python/actions/runs/30471618425
Likely cause
The matrix defines
python: ["3.12"]as a base axis while definingosandshellthroughinclude. The include entries successively augment the same base combination instead of creating five complete matrix rows, leaving only the final Windows values.Current shape:
Define
pythonin each included row (or use a normal OS axis plus an explicit shell mapping) so every tuple is distinct:Acceptance criteria
Smoke (local) <os> py3.12jobs.ci/smoke/smoke.py.