]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Use Windows ARM64 hosted runners (#132546)
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Wed, 16 Apr 2025 13:27:20 +0000 (16:27 +0300)
committerGitHub <noreply@github.com>
Wed, 16 Apr 2025 13:27:20 +0000 (16:27 +0300)
Co-authored-by: Diego Russo <diego.russo@arm.com>
.github/actionlint.yaml
.github/workflows/build.yml
.github/workflows/jit.yml
.github/workflows/reusable-windows-msi.yml
.github/workflows/reusable-windows.yml

index af125266ae78132f67c7abbec2815e3e5d83e156..68aae1963574141c21b11ecc510cae5de882ace5 100644 (file)
@@ -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
 
index c8fc5cff28bdd2dba3153d7f64e4cfe16c4f9841..dcd5060d7cfa421dd6204c61e092fd3e2a03ebaa 100644 (file)
@@ -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:
index 4f5ba84d48ef3df6d8e1e32b16a7ac33486b9864..e08d3c8bfd61a8b994014fbdf6df97b703089f5e 100644 (file)
@@ -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 }}
index 6213c903c5ab8462654c14de6377d646adff5ed9..a50de344bba4dacf103fc2eff66aba15c95d63f6 100644 (file)
@@ -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
index deb1f41640e41f29ee3e9b151f1fd8beb61847bc..37c802095b0f2fab1e8cdf3d0304279d247b0499 100644 (file)
@@ -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}"