Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
always run MSVC 64bit tail-calling CI when
run-windows-tests is true
  • Loading branch information
chris-eibl committed Mar 28, 2026
commit 319bac7181db28fa0634b183a93d03fc913b8422
6 changes: 6 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,13 +165,19 @@ jobs:
free-threading:
- false
- true
interpreter:
- regular
Comment thread
chris-eibl marked this conversation as resolved.
Outdated
exclude:
# Skip Win32 on free-threaded builds
- { arch: Win32, free-threading: true }
include:
Comment thread
chris-eibl marked this conversation as resolved.
- { 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.
Expand Down
15 changes: 12 additions & 3 deletions .github/workflows/reusable-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ on:
required: false
type: boolean
default: false
interpreter:
description: Which interpreter to build
required: false
type: string
default: regular

env:
FORCE_COLOR: 1
Expand All @@ -20,7 +25,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:
Expand All @@ -33,9 +38,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 == 'regular' && '-d' || '--tail-call-interp -c Release' }}
-p "${ARCH}"
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
shell: bash
Expand All @@ -45,6 +53,7 @@ jobs:
run: >-
.\\PCbuild\\rt.bat
-p "${ARCH}"
-d -q --fast-ci
-q --fast-ci
${{ inputs.interpreter == 'regular' && '-d' || '' }}
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
shell: bash
35 changes: 0 additions & 35 deletions .github/workflows/tail-call.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
Expand Down
Loading