Enable aarch64 Ubuntu CI jobs (#125786) · python/cpython@8214e0f

GitHub

Original file line numberDiff line numberDiff line change@@ -0,0 +1,10 @@

1+self-hosted-runner:

2+labels: ["ubuntu-24.04-aarch64", "windows-aarch64"]

3+4+config-variables: null

5+6+paths:

7+.github/workflows/**/*.yml:

8+ignore:

9+ - 1st argument of function call is not assignable

10+ - SC2(015|038|086|091|097|098|129|155)

Original file line numberDiff line numberDiff line change@@ -150,16 +150,28 @@ jobs:

150150needs: check_source

151151if: fromJSON(needs.check_source.outputs.run_tests)

152152strategy:

153+fail-fast: false

153154matrix:

155+os:

156+ - windows-latest

154157arch:

155- - Win32

156- - x64

157- - arm64

158+ - x64

158159free-threading:

159- - false

160- - true

160+ - false

161+ - true

162+include:

163+ - os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64

164+arch: arm64

165+free-threading: false

166+ - os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64

167+arch: arm64

168+free-threading: true

169+ - os: windows-latest

170+arch: Win32

171+free-threading: false

161172uses: ./.github/workflows/reusable-windows.yml

162173with:

174+os: ${{ matrix.os }}

163175arch: ${{ matrix.arch }}

164176free-threading: ${{ matrix.free-threading }}

165177Original file line numberDiff line numberDiff line change@@ -20,7 +20,7 @@ jobs:

2020strategy:

2121fail-fast: false

2222matrix:

23-os: [ubuntu-24.04]

23+os: [ubuntu-24.04, ubuntu-24.04-aarch64]

2424env:

2525FORCE_COLOR: 1

2626OPENSSL_VER: 3.0.15

@@ -82,11 +82,11 @@ jobs:

8282 - name: Build CPython out-of-tree

8383if: ${{ inputs.free-threading }}

8484working-directory: ${{ env.CPYTHON_BUILDDIR }}

85-run: make -j4

85+run: make -j

8686 - name: Build CPython out-of-tree (for compiler warning check)

8787if: ${{ !inputs.free-threading}}

8888working-directory: ${{ env.CPYTHON_BUILDDIR }}

89-run: set -o pipefail; make -j4 --output-sync 2>&1 | tee compiler_output_ubuntu.txt

89+run: set -o pipefail; make -j --output-sync 2>&1 | tee compiler_output_ubuntu.txt

9090 - name: Display build info

9191working-directory: ${{ env.CPYTHON_BUILDDIR }}

9292run: make pythoninfo

Original file line numberDiff line numberDiff line change@@ -3,6 +3,10 @@ name: Reusable Windows

33on:

44workflow_call:

55inputs:

6+os:

7+description: OS to run on

8+required: true

9+type: string

610arch:

711description: CPU architecture

812required: true

@@ -19,10 +23,8 @@ env:

19232024jobs:

2125build:

22-name: >-

23- build${{ inputs.arch != 'arm64' && ' and test' || '' }}

24- (${{ inputs.arch }})

25-runs-on: windows-latest

26+name: 'build and test (${{ inputs.arch }})'

27+runs-on: ${{ inputs.os }}

2628timeout-minutes: 60

2729steps:

2830 - uses: actions/checkout@v4

@@ -31,17 +33,17 @@ jobs:

3133run: echo "::add-matcher::.github/problem-matchers/msvc.json"

3234 - name: Build CPython

3335run: >-

34- .\PCbuild\build.bat

36+ .\\PCbuild\\build.bat

3537 -e -d -v

3638 -p ${{ inputs.arch }}

3739 ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}

38- - name: Display build info

40+ - name: Display build info# FIXME(diegorusso): remove the `if`

3941if: inputs.arch != 'arm64'

40-run: .\python.bat -m test.pythoninfo

41- - name: Tests

42+run: .\\python.bat -m test.pythoninfo

43+ - name: Tests# FIXME(diegorusso): remove the `if`

4244if: inputs.arch != 'arm64'

4345run: >-

44- .\PCbuild\rt.bat

46+ .\\PCbuild\\rt.bat

4547 -p ${{ inputs.arch }}

4648 -d -q --fast-ci

4749 ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}

Original file line numberDiff line numberDiff line change@@ -57,13 +57,9 @@ repos:

5757 - id: check-github-workflows

58585959 - repo: https://github.com/rhysd/actionlint

60-rev: v1.7.3

60+rev: v1.7.4

6161hooks:

6262 - id: actionlint

63-args: [

64--ignore=1st argument of function call is not assignable,

65--ignore=SC2(015|038|086|091|097|098|129|155),

66-]

67636864 - repo: https://github.com/sphinx-contrib/sphinx-lint

6965rev: v1.0.0