https://github.com/python/cpython/commit/10a77619f9a465ecfbd1ccb4f8aea9175d76912d commit: 10a77619f9a465ecfbd1ccb4f8aea9175d76912d branch: main author: Hugo van Kemenade <1324225+hug...@users.noreply.github.com> committer: hugovk <1324225+hug...@users.noreply.github.com> date: 2025-04-16T16:27:20+03:00 summary:
Use Windows ARM64 hosted runners (#132546) Co-authored-by: Diego Russo <diego.ru...@arm.com> files: M .github/actionlint.yaml M .github/workflows/build.yml M .github/workflows/jit.yml M .github/workflows/reusable-windows-msi.yml M .github/workflows/reusable-windows.yml diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index af125266ae7813..68aae196357414 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -1,5 +1,6 @@ self-hosted-runner: - labels: ["windows-aarch64"] + # Pending https://github.com/rhysd/actionlint/issues/533 + labels: ["windows-11-arm"] config-variables: null diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c8fc5cff28bdd2..dcd5060d7cfa42 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -156,28 +156,18 @@ jobs: strategy: fail-fast: false matrix: - os: - - windows-latest arch: - x64 + - Win32 + - arm64 free-threading: - false - true - include: - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 - free-threading: false - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 - free-threading: true - - os: windows-latest - arch: Win32 - free-threading: false + exclude: + # Skip Win32 on free-threaded builds + - { arch: Win32, free-threading: true } uses: ./.github/workflows/reusable-windows.yml with: - os: ${{ matrix.os }} arch: ${{ matrix.arch }} free-threading: ${{ matrix.free-threading }} @@ -189,18 +179,12 @@ jobs: strategy: fail-fast: false matrix: - os: - - windows-latest arch: - x86 - x64 - include: - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 + - arm64 uses: ./.github/workflows/reusable-windows-msi.yml with: - os: ${{ matrix.os }} arch: ${{ matrix.arch }} build-macos: diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 4f5ba84d48ef3d..e08d3c8bfd61a8 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -74,8 +74,7 @@ jobs: runner: windows-latest - target: aarch64-pc-windows-msvc/msvc architecture: ARM64 - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - runner: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} + runner: windows-11-arm - target: x86_64-apple-darwin/clang architecture: x86_64 runner: macos-13 @@ -97,8 +96,7 @@ jobs: python-version: '3.11' - name: Windows - # Forks don't have access to Windows on Arm runners. Skip those: - if: runner.os == 'Windows' && (matrix.architecture != 'ARM64' || github.repository_owner == 'python') + if: runner.os == 'Windows' run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0 ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} diff --git a/.github/workflows/reusable-windows-msi.yml b/.github/workflows/reusable-windows-msi.yml index 6213c903c5ab84..a50de344bba4da 100644 --- a/.github/workflows/reusable-windows-msi.yml +++ b/.github/workflows/reusable-windows-msi.yml @@ -3,10 +3,6 @@ name: Reusable Windows MSI on: workflow_call: inputs: - os: - description: OS to run on - required: true - type: string arch: description: CPU architecture required: true @@ -21,7 +17,7 @@ env: jobs: build: name: installer for ${{ inputs.arch }} - runs-on: ${{ inputs.os }} + runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-latest' }} timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} @@ -31,7 +27,5 @@ jobs: with: persist-credentials: false - name: Build CPython installer - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: ./Tools/msi/build.bat --doc -"${ARCH}" shell: bash diff --git a/.github/workflows/reusable-windows.yml b/.github/workflows/reusable-windows.yml index deb1f41640e41f..37c802095b0f2f 100644 --- a/.github/workflows/reusable-windows.yml +++ b/.github/workflows/reusable-windows.yml @@ -3,10 +3,6 @@ name: Reusable Windows on: workflow_call: inputs: - os: - description: OS to run on - required: true - type: string arch: description: CPU architecture required: true @@ -25,7 +21,7 @@ env: jobs: build: name: Build and test (${{ inputs.arch }}) - runs-on: ${{ inputs.os }} + runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-latest' }} timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} @@ -37,8 +33,6 @@ jobs: if: inputs.arch != 'Win32' run: echo "::add-matcher::.github/problem-matchers/msvc.json" - name: Build CPython - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: >- .\\PCbuild\\build.bat -e -d -v @@ -46,12 +40,8 @@ jobs: ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }} shell: bash - name: Display build info - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: .\\python.bat -m test.pythoninfo - name: Tests - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: >- .\\PCbuild\\rt.bat -p "${ARCH}" _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com