Skip to content

Commit 4f17004

Browse files
authored
no-issue: Add free-threading CI (#335)
1 parent bce7b77 commit 4f17004

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

.github/workflows/main.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ${{ matrix.os }}
1717
permissions:
1818
pull-requests: write
19-
name: ${{ matrix.os }} - ${{ matrix.python }}
19+
name: ${{ matrix.os }} - ${{ matrix.python }} ${{ matrix.build }}
2020
if: ${{ github.event_name != 'schedule' || (github.repository == 'python/pyperformance' && github.event_name == 'schedule') }}
2121
strategy:
2222
fail-fast: false
@@ -25,44 +25,54 @@ jobs:
2525
os: [ubuntu-latest]
2626
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
2727
experimental: [false]
28+
build: ['']
2829
include:
2930
# As the experimental task for the dev version.
3031
- os: ubuntu-latest
3132
python: "3.13-dev"
3233
experimental: true
34+
build: ''
35+
- os: ubuntu-latest
36+
python: "3.13-dev"
37+
experimental: true
38+
build: 'free-threading'
3339
# Also test PyPy, macOS, and Windows:
3440
- os: ubuntu-latest
3541
python: pypy-3.10
3642
experimental: false
43+
build: ''
3744
- os: ubuntu-latest
3845
python: pypy-3.9
3946
experimental: false
47+
build: ''
4048
- os: macos-latest
4149
python: "3.12"
4250
experimental: true
4351
- os: windows-latest
4452
python: "3.12"
4553
experimental: true
54+
build: ''
4655
steps:
47-
- uses: actions/checkout@v3
56+
- uses: actions/checkout@v4
4857
- name: Set up Python ${{ matrix.python }}
49-
uses: actions/setup-python@v4
58+
uses: actions/setup-python@v5
5059
if: "!endsWith(matrix.python, '-dev')"
5160
with:
5261
python-version: ${{ matrix.python }}
5362
- name: Set up Python ${{ matrix.python }} using deadsnakes
54-
uses: deadsnakes/action@v3.0.0
63+
uses: deadsnakes/action@v3.1.0
5564
if: "endsWith(matrix.python, '-dev')"
5665
with:
5766
python-version: ${{ matrix.python }}
67+
nogil: ${{ matrix.build == 'free-threading' }}
5868
- name: Install
5969
# pyperformance must be installed:
6070
# pyperformance/tests/test_compare.py imports it
6171
run: |
6272
python -m pip install --upgrade pip setuptools
6373
python -m pip install -e .
6474
- name: Display Python version
65-
run: python -c "import sys; print(sys.version)"
75+
run: python --version --version
6676
- name: Run Tests
6777
id: pyperformance
6878
run: python -u -m pyperformance.tests

0 commit comments

Comments
 (0)