Skip to content

CI: matrix publish across macOS + Linux (x86_64/arm64) #9

Description

@sqr00t

Summary

Turn the CodeArtifact publish workflow into a build matrix so each supported platform produces its own wheel, while keeping the macOS publish as the gating leg.

Motivation

ahl_dwc is a compiled package (scikit-build-core + pybind11), so wheels are platform-specific. A single-runner workflow only ever produced one platform's wheel. A matrix lets us build for macOS and both Linux architectures from one release.

Scope

Leg Runner Toolchain Behaviour
macOS arm64 macos-latest Apple Clang + libc++ blocking; builds wheel + sdist, publishes
Linux x86_64 ubuntu-latest GCC + libstdc++ non-blocking until the C++ fix
Linux arm64 ubuntu-24.04-arm GCC + libstdc++ non-blocking until the C++ fix

Acceptance criteria

  • Matrix over macOS arm64, Linux x86_64, Linux arm64 with fail-fast: false.
  • macOS leg blocking; builds sdist (published once) + wheel; Linux legs build wheel-only.
  • Linux legs continue-on-error so they don't block the macOS publish (they can't compile until C++ extension fails to compile under GCC/libstdc++ (blocks Linux wheels) #7).
  • Publish endpoint kept in GitHub secrets (repo is public) — not committed to pyproject.toml.
  • macOS build + publish confirmed green in CI (wheel uploaded; only a 409 on the pre-existing 0.1.0 sdist).
  • Make publish idempotent so re-runs / already-published assets don't hard-fail (e.g. uv publish --check-url).

Dependencies / follow-ups

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions