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

Reply via email to