Skip to content

Commit 425a73b

Browse files
Refactor into per-OS jobs and more granular steps
2 parents b385150 + 96aa6b0 commit 425a73b

File tree

1 file changed

+56
-26
lines changed

1 file changed

+56
-26
lines changed

.github/workflows/tail-call.yml

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ env:
2323
LLVM_VERSION: 21
2424

2525
jobs:
26-
tail-call:
26+
windows:
2727
name: ${{ matrix.target }}
2828
runs-on: ${{ matrix.runner }}
2929
timeout-minutes: 90
@@ -41,59 +41,89 @@ jobs:
4141
runner: windows-2025-vs2026
4242
build_flags: --disable-gil
4343
run_tests: false
44-
- target: x86_64-apple-darwin/clang
45-
architecture: x86_64
46-
runner: macos-15-intel
47-
- target: aarch64-apple-darwin/clang
48-
architecture: aarch64
49-
runner: macos-14
50-
- target: x86_64-unknown-linux-gnu/gcc
51-
architecture: x86_64
52-
runner: ubuntu-24.04
53-
configure_flags: --with-pydebug
54-
- target: x86_64-unknown-linux-gnu/gcc-free-threading
55-
architecture: x86_64
56-
runner: ubuntu-24.04
57-
configure_flags: --disable-gil
58-
- target: aarch64-unknown-linux-gnu/gcc
59-
architecture: aarch64
60-
runner: ubuntu-24.04-arm
61-
configure_flags: --with-pydebug
6244
steps:
6345
- uses: actions/checkout@v6
6446
with:
6547
persist-credentials: false
6648
- uses: actions/setup-python@v6
6749
with:
6850
python-version: '3.11'
69-
70-
- name: Native Windows MSVC (release)
71-
if: runner.os == 'Windows'
51+
- name: Build
7252
shell: pwsh
7353
run: |
7454
$env:PlatformToolset = "v145"
7555
./PCbuild/build.bat --tail-call-interp ${{ matrix.build_flags }} -c Release -p ${{ matrix.architecture }}
56+
- name: Test
57+
shell: pwsh
58+
run: |
7659
if ("${{ matrix.run_tests }}" -eq "true") {
7760
./PCbuild/rt.bat -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
7861
}
7962
80-
- name: Native macOS (release)
81-
if: runner.os == 'macOS'
63+
macos:
64+
name: ${{ matrix.target }}
65+
runs-on: ${{ matrix.runner }}
66+
timeout-minutes: 90
67+
strategy:
68+
fail-fast: false
69+
matrix:
70+
include:
71+
- target: x86_64-apple-darwin/clang
72+
runner: macos-15-intel
73+
- target: aarch64-apple-darwin/clang
74+
runner: macos-14
75+
steps:
76+
- uses: actions/checkout@v6
77+
with:
78+
persist-credentials: false
79+
- uses: actions/setup-python@v6
80+
with:
81+
python-version: '3.11'
82+
- name: Install dependencies
8283
run: |
8384
brew update
8485
brew install llvm@${{ env.LLVM_VERSION }}
86+
- name: Build
87+
run: |
8588
export SDKROOT="$(xcrun --show-sdk-path)"
8689
export PATH="/usr/local/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH"
8790
export PATH="/opt/homebrew/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH"
8891
CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp
8992
make all --jobs 4
93+
- name: Test
94+
run: |
9095
./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
9196
92-
- name: Native Linux
93-
if: runner.os == 'Linux'
97+
linux:
98+
name: ${{ matrix.target }}
99+
runs-on: ${{ matrix.runner }}
100+
timeout-minutes: 90
101+
strategy:
102+
fail-fast: false
103+
matrix:
104+
include:
105+
- target: x86_64-unknown-linux-gnu/gcc
106+
runner: ubuntu-24.04
107+
configure_flags: --with-pydebug
108+
- target: x86_64-unknown-linux-gnu/gcc-free-threading
109+
runner: ubuntu-24.04
110+
configure_flags: --disable-gil
111+
- target: aarch64-unknown-linux-gnu/gcc
112+
runner: ubuntu-24.04-arm
113+
configure_flags: --with-pydebug
114+
steps:
115+
- uses: actions/checkout@v6
116+
with:
117+
persist-credentials: false
118+
- uses: actions/setup-python@v6
119+
with:
120+
python-version: '3.11'
121+
- name: Build
94122
run: |
95123
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
96124
export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
97125
CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp ${{ matrix.configure_flags }}
98126
make all --jobs 4
127+
- name: Test
128+
run: |
99129
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3

0 commit comments

Comments
 (0)