mirror of
https://github.com/python/cpython.git
synced 2024-11-23 01:45:25 +08:00
Enable aarch64 Ubuntu CI jobs (#125786)
This change enables custom GHA runners for Ubuntu-24.04 that run on Arm hardware. It also prepares for Windows runners on Arm hardware, but doesn't enable that just yet, because the Arm GHA runner images for Windows need to be updated.
This commit is contained in:
parent
27486c3365
commit
8214e0f709
10
.github/actionlint.yaml
vendored
Normal file
10
.github/actionlint.yaml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
self-hosted-runner:
|
||||
labels: ["ubuntu-24.04-aarch64", "windows-aarch64"]
|
||||
|
||||
config-variables: null
|
||||
|
||||
paths:
|
||||
.github/workflows/**/*.yml:
|
||||
ignore:
|
||||
- 1st argument of function call is not assignable
|
||||
- SC2(015|038|086|091|097|098|129|155)
|
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
@ -150,16 +150,28 @@ jobs:
|
||||
needs: check_source
|
||||
if: fromJSON(needs.check_source.outputs.run_tests)
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- windows-latest
|
||||
arch:
|
||||
- Win32
|
||||
- x64
|
||||
- arm64
|
||||
- x64
|
||||
free-threading:
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
include:
|
||||
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
|
||||
arch: arm64
|
||||
free-threading: false
|
||||
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
|
||||
arch: arm64
|
||||
free-threading: true
|
||||
- os: windows-latest
|
||||
arch: Win32
|
||||
free-threading: false
|
||||
uses: ./.github/workflows/reusable-windows.yml
|
||||
with:
|
||||
os: ${{ matrix.os }}
|
||||
arch: ${{ matrix.arch }}
|
||||
free-threading: ${{ matrix.free-threading }}
|
||||
|
||||
|
6
.github/workflows/reusable-ubuntu.yml
vendored
6
.github/workflows/reusable-ubuntu.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
os: [ubuntu-24.04, ubuntu-24.04-aarch64]
|
||||
env:
|
||||
FORCE_COLOR: 1
|
||||
OPENSSL_VER: 3.0.15
|
||||
@ -82,11 +82,11 @@ jobs:
|
||||
- name: Build CPython out-of-tree
|
||||
if: ${{ inputs.free-threading }}
|
||||
working-directory: ${{ env.CPYTHON_BUILDDIR }}
|
||||
run: make -j4
|
||||
run: make -j
|
||||
- name: Build CPython out-of-tree (for compiler warning check)
|
||||
if: ${{ !inputs.free-threading}}
|
||||
working-directory: ${{ env.CPYTHON_BUILDDIR }}
|
||||
run: set -o pipefail; make -j4 --output-sync 2>&1 | tee compiler_output_ubuntu.txt
|
||||
run: set -o pipefail; make -j --output-sync 2>&1 | tee compiler_output_ubuntu.txt
|
||||
- name: Display build info
|
||||
working-directory: ${{ env.CPYTHON_BUILDDIR }}
|
||||
run: make pythoninfo
|
||||
|
20
.github/workflows/reusable-windows.yml
vendored
20
.github/workflows/reusable-windows.yml
vendored
@ -3,6 +3,10 @@ name: Reusable Windows
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
description: OS to run on
|
||||
required: true
|
||||
type: string
|
||||
arch:
|
||||
description: CPU architecture
|
||||
required: true
|
||||
@ -19,10 +23,8 @@ env:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: >-
|
||||
build${{ inputs.arch != 'arm64' && ' and test' || '' }}
|
||||
(${{ inputs.arch }})
|
||||
runs-on: windows-latest
|
||||
name: 'build and test (${{ inputs.arch }})'
|
||||
runs-on: ${{ inputs.os }}
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@ -31,17 +33,17 @@ jobs:
|
||||
run: echo "::add-matcher::.github/problem-matchers/msvc.json"
|
||||
- name: Build CPython
|
||||
run: >-
|
||||
.\PCbuild\build.bat
|
||||
.\\PCbuild\\build.bat
|
||||
-e -d -v
|
||||
-p ${{ inputs.arch }}
|
||||
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
|
||||
- name: Display build info
|
||||
- name: Display build info # FIXME(diegorusso): remove the `if`
|
||||
if: inputs.arch != 'arm64'
|
||||
run: .\python.bat -m test.pythoninfo
|
||||
- name: Tests
|
||||
run: .\\python.bat -m test.pythoninfo
|
||||
- name: Tests # FIXME(diegorusso): remove the `if`
|
||||
if: inputs.arch != 'arm64'
|
||||
run: >-
|
||||
.\PCbuild\rt.bat
|
||||
.\\PCbuild\\rt.bat
|
||||
-p ${{ inputs.arch }}
|
||||
-d -q --fast-ci
|
||||
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
|
||||
|
@ -57,13 +57,9 @@ repos:
|
||||
- id: check-github-workflows
|
||||
|
||||
- repo: https://github.com/rhysd/actionlint
|
||||
rev: v1.7.3
|
||||
rev: v1.7.4
|
||||
hooks:
|
||||
- id: actionlint
|
||||
args: [
|
||||
-ignore=1st argument of function call is not assignable,
|
||||
-ignore=SC2(015|038|086|091|097|098|129|155),
|
||||
]
|
||||
|
||||
- repo: https://github.com/sphinx-contrib/sphinx-lint
|
||||
rev: v1.0.0
|
||||
|
Loading…
Reference in New Issue
Block a user