mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
Enable Windows on Arm GitHub runners (#131994)
This commit is contained in:
parent
b6c92ec419
commit
0dbaeb94a8
4 changed files with 34 additions and 21 deletions
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
|
@ -164,10 +164,12 @@ jobs:
|
|||
- false
|
||||
- true
|
||||
include:
|
||||
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
|
||||
# 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
|
||||
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
|
||||
# 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
|
||||
|
@ -187,12 +189,18 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- windows-latest
|
||||
arch:
|
||||
- x86
|
||||
- x64
|
||||
- arm64
|
||||
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
|
||||
uses: ./.github/workflows/reusable-windows-msi.yml
|
||||
with:
|
||||
os: ${{ matrix.os }}
|
||||
arch: ${{ matrix.arch }}
|
||||
|
||||
build-macos:
|
||||
|
|
19
.github/workflows/jit.yml
vendored
19
.github/workflows/jit.yml
vendored
|
@ -74,7 +74,8 @@ jobs:
|
|||
runner: windows-latest
|
||||
- target: aarch64-pc-windows-msvc/msvc
|
||||
architecture: ARM64
|
||||
runner: windows-latest
|
||||
# Forks don't have access to Windows on Arm runners. These jobs are skipped below:
|
||||
runner: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }}
|
||||
- target: x86_64-apple-darwin/clang
|
||||
architecture: x86_64
|
||||
runner: macos-13
|
||||
|
@ -95,25 +96,19 @@ jobs:
|
|||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Native Windows
|
||||
if: runner.os == 'Windows' && matrix.architecture != 'ARM64'
|
||||
- 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')
|
||||
run: |
|
||||
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
|
||||
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
|
||||
./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
|
||||
|
||||
# No tests (yet):
|
||||
- name: Emulated Windows
|
||||
if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
|
||||
run: |
|
||||
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
|
||||
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
|
||||
|
||||
# The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966.
|
||||
# This is a bug in the macOS runner image where the pre-installed Python is installed in the same
|
||||
# directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes
|
||||
# the symlink to the pre-installed Python so that the Homebrew Python is used instead.
|
||||
- name: Native macOS
|
||||
- name: macOS
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
brew update
|
||||
|
@ -124,7 +119,7 @@ jobs:
|
|||
make all --jobs 4
|
||||
./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
|
||||
|
||||
- name: Native Linux
|
||||
- name: Linux
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
|
||||
|
|
8
.github/workflows/reusable-windows-msi.yml
vendored
8
.github/workflows/reusable-windows-msi.yml
vendored
|
@ -3,6 +3,10 @@ name: Reusable Windows MSI
|
|||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
description: OS to run on
|
||||
required: true
|
||||
type: string
|
||||
arch:
|
||||
description: CPU architecture
|
||||
required: true
|
||||
|
@ -17,7 +21,7 @@ env:
|
|||
jobs:
|
||||
build:
|
||||
name: installer for ${{ inputs.arch }}
|
||||
runs-on: windows-latest
|
||||
runs-on: ${{ inputs.os }}
|
||||
timeout-minutes: 60
|
||||
env:
|
||||
ARCH: ${{ inputs.arch }}
|
||||
|
@ -27,5 +31,7 @@ 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
|
||||
|
|
14
.github/workflows/reusable-windows.yml
vendored
14
.github/workflows/reusable-windows.yml
vendored
|
@ -24,7 +24,7 @@ env:
|
|||
|
||||
jobs:
|
||||
build:
|
||||
name: ${{ inputs.arch == 'arm64' && 'build' || 'build and test' }} (${{ inputs.arch }})
|
||||
name: Build and test (${{ inputs.arch }})
|
||||
runs-on: ${{ inputs.os }}
|
||||
timeout-minutes: 60
|
||||
env:
|
||||
|
@ -37,17 +37,21 @@ 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
|
||||
-p "${ARCH}"
|
||||
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
|
||||
shell: bash
|
||||
- name: Display build info # FIXME(diegorusso): remove the `if`
|
||||
if: inputs.arch != 'arm64'
|
||||
- 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 # FIXME(diegorusso): remove the `if`
|
||||
if: inputs.arch != 'arm64'
|
||||
- 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}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue