mirror of
https://github.com/python/cpython.git
synced 2026-04-15 00:00:57 +00:00
gh-139922: always run MSVC 64-bit tail-calling CI (GH-146570)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
This commit is contained in:
parent
adf2c47911
commit
76c554bcdf
3 changed files with 19 additions and 38 deletions
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
|
|
@ -165,13 +165,21 @@ jobs:
|
|||
free-threading:
|
||||
- false
|
||||
- true
|
||||
interpreter:
|
||||
- switch-case
|
||||
exclude:
|
||||
# Skip Win32 on free-threaded builds
|
||||
- { arch: Win32, free-threading: true }
|
||||
include:
|
||||
# msvc::musttail is currently only supported on x64,
|
||||
# and only supported on 3.15+.
|
||||
- { arch: x64, free-threading: false, interpreter: tail-call }
|
||||
- { arch: x64, free-threading: true, interpreter: tail-call }
|
||||
uses: ./.github/workflows/reusable-windows.yml
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
free-threading: ${{ matrix.free-threading }}
|
||||
interpreter: ${{ matrix.interpreter }}
|
||||
|
||||
build-windows-msi:
|
||||
# ${{ '' } is a hack to nest jobs under the same sidebar category.
|
||||
|
|
|
|||
14
.github/workflows/reusable-windows.yml
vendored
14
.github/workflows/reusable-windows.yml
vendored
|
|
@ -12,6 +12,10 @@ on:
|
|||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
interpreter:
|
||||
description: Which interpreter to build (switch-case or tail-call)
|
||||
required: true
|
||||
type: string
|
||||
|
||||
env:
|
||||
FORCE_COLOR: 1
|
||||
|
|
@ -20,7 +24,7 @@ env:
|
|||
|
||||
jobs:
|
||||
build:
|
||||
name: Build and test (${{ inputs.arch }})
|
||||
name: Build and test (${{ inputs.arch }}, ${{ inputs.interpreter }})
|
||||
runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-2025-vs2026' }}
|
||||
timeout-minutes: 60
|
||||
env:
|
||||
|
|
@ -33,9 +37,12 @@ jobs:
|
|||
if: inputs.arch != 'Win32'
|
||||
run: echo "::add-matcher::.github/problem-matchers/msvc.json"
|
||||
- name: Build CPython
|
||||
# msvc::musttail is not supported for debug builds, so we have to
|
||||
# switch to release.
|
||||
run: >-
|
||||
.\\PCbuild\\build.bat
|
||||
-e -d -v
|
||||
-e -v
|
||||
${{ inputs.interpreter == 'switch-case' && '-d' || '--tail-call-interp -c Release' }}
|
||||
-p "${ARCH}"
|
||||
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
|
||||
shell: bash
|
||||
|
|
@ -45,6 +52,7 @@ jobs:
|
|||
run: >-
|
||||
.\\PCbuild\\rt.bat
|
||||
-p "${ARCH}"
|
||||
-d -q --fast-ci
|
||||
-q --fast-ci
|
||||
${{ inputs.interpreter == 'switch-case' && '-d' || '' }}
|
||||
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
|
||||
shell: bash
|
||||
|
|
|
|||
35
.github/workflows/tail-call.yml
vendored
35
.github/workflows/tail-call.yml
vendored
|
|
@ -23,41 +23,6 @@ env:
|
|||
LLVM_VERSION: 21
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
name: ${{ matrix.target }}
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- target: x86_64-pc-windows-msvc/msvc
|
||||
architecture: x64
|
||||
runner: windows-2025-vs2026
|
||||
build_flags: ""
|
||||
run_tests: true
|
||||
- target: x86_64-pc-windows-msvc/msvc-free-threading
|
||||
architecture: x64
|
||||
runner: windows-2025-vs2026
|
||||
build_flags: --disable-gil
|
||||
run_tests: false
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- name: Build
|
||||
shell: pwsh
|
||||
run: |
|
||||
./PCbuild/build.bat --tail-call-interp ${{ matrix.build_flags }} -c Release -p ${{ matrix.architecture }}
|
||||
- name: Test
|
||||
if: matrix.run_tests
|
||||
shell: pwsh
|
||||
run: |
|
||||
./PCbuild/rt.bat -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
|
||||
|
||||
macos:
|
||||
name: ${{ matrix.target }}
|
||||
runs-on: ${{ matrix.runner }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue