Skip to content

2026-10-10 nightly release (1255104d89889648f7cf8d786cefa0c77c6f3453) #4764

2026-10-10 nightly release (1255104d89889648f7cf8d786cefa0c77c6f3453)

2026-10-10 nightly release (1255104d89889648f7cf8d786cefa0c77c6f3453) #4764

name: Build Windows Wheels
on:
pull_request:
push:
branches:
- nightly
- main
- release/*
tags:
# NOTE: Binary build pipelines should only get triggered on release candidate builds
# Release candidate tags look like: v1.11.0-rc1
- v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+
workflow_dispatch:
permissions:
id-token: write
contents: read
jobs:
generate-matrix:
uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main
with:
package-type: wheel
os: windows
test-infra-repository: pytorch/test-infra
test-infra-ref: main
with-xpu: enable
build-python-only: enable
# We should only need one build per `arch x accelerator` variant (no need for
# per-Python-version wheels!). This fails if the matrix builds an accelerator
# variant (cpu, cu134, ...) more than once.
check-one-build-per-variant:
needs: generate-matrix
runs-on: ubuntu-latest
steps:
- env:
MATRIX: ${{ needs.generate-matrix.outputs.matrix }}
run: |
dupes=$(jq -r '.include | group_by(.desired_cuda) | map(select(length > 1)
| "\(.[0].desired_cuda): \(map(.python_version) | join(", "))") | .[]' <<< "$MATRIX")
[[ -z "$dupes" ]] || { echo "More than one build per variant:"; echo "$dupes"; exit 1; }
build:
needs: [generate-matrix, check-one-build-per-variant]
strategy:
fail-fast: false
matrix:
include:
- repository: pytorch/audio
env-script: packaging/vc_env_helper.bat
smoke-test-script: test/smoke_test/smoke_test_no_ffmpeg.py
package-name: torchaudio
name: ${{ matrix.repository }}
uses: pytorch/test-infra/.github/workflows/build_wheels_windows.yml@main
with:
repository: ${{ matrix.repository }}
ref: ""
test-infra-repository: pytorch/test-infra
test-infra-ref: main
build-matrix: ${{ needs.generate-matrix.outputs.matrix }}
env-script: ${{ matrix.env-script }}
package-name: ${{ matrix.package-name }}
smoke-test-script: ${{ matrix.smoke-test-script }}
trigger-event: ${{ github.event_name }}
secrets:
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
# See the equivalent job in build_wheels_linux.yml for why this exists.
test-py3-none-wheel:
needs: build
strategy:
fail-fast: false
matrix:
python-version: ["3.14", "3.15", "3.15t"]
name: test-py3-none-wheel-py${{ matrix.python-version }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/test-py3-none-wheel
with:
python-version: ${{ matrix.python-version }}
artifact-pattern: "*_cpu_x64"
wheel-glob: "dist/torchaudio-*-py3-none-win_amd64.whl"