Skip to content

Add CI for Windows CUDA build#3775

Open
zcbenz wants to merge 1 commit into
mainfrom
win-large-ci
Open

Add CI for Windows CUDA build#3775
zcbenz wants to merge 1 commit into
mainfrom
win-large-ci

Conversation

@zcbenz

@zcbenz zcbenz commented Jun 28, 2026

Copy link
Copy Markdown
Collaborator

This PR does a rewrite of Linux build's GitHub Actions workflow to support Windows.

Simplified overview for daily testing:

  build_and_test:
    strategy:
      matrix:
        os: ['Linux', 'Windows']
        arch: ['x86_64', 'aarch64']
        toolkit: ['cpu', 'cuda-12.6', 'cuda-12.9', 'cuda-13.0']
    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup
      - uses: ./.github/actions/build
      - uses: ./.github/actions/test-linux
      - uses: ./.github/actions/test-windows
test

Simplified overview for release build:

  build_frontend:
    strategy:
      matrix:
        os: ['Linux', 'Windows']
        arch: ['x86_64', 'aarch64']
        python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup
      - uses: ./.github/actions/build-wheel
        with:
          build-backend: false
      - uses: ./.github/actions/test-linux
      - uses: ./.github/actions/test-windows
      - uses: actions/upload-artifact@v7

  build_backend:
    strategy:
      matrix:
        os: ['Linux', 'Windows']
        arch: ['x86_64', 'aarch64']
        toolkit: ['cpu', 'cuda-12.9', 'cuda-13.0']
    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup
      - uses: ./.github/actions/build-wheel
        with:
          build-frontend: false
      - uses: actions/upload-artifact@v7


  test_wheel:
    needs: [build_frontend, build_backend, build_mac_wheels]
    strategy:
      matrix:
        os: ['Linux', 'Windows', 'macOS']
    steps:
      - uses: ./.github/actions/test-wheel
release

For the release build the new test_wheel job will download the uploaded wheels into a fresh env and run MLX tests with them.

The nightly workflow is removed, instead the release workflow will run nightly to test the wheels.

This PR also includes some changes to fix compile cache misses.

Note that at the time of writing this PR uses the free Windows runners and we will switch to large runners later as fresh builds would take too much time on the free runner.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant