@@ -54,21 +54,18 @@ jobs:
5454 fail-fast : false
5555 matrix :
5656 os : [ubuntu-latest, windows-latest, macos-15-intel]
57- python : [cp37, cp38, cp39, cp310, cp311, cp312, cp313]
57+ python : [cp37, cp38, cp39, cp310, cp311, cp312, cp313, cp314 ]
5858
5959
6060 include :
61- # Put coverage and results files in the project directory for mac
61+ # Put results files in the project directory for mac
6262 - os : macos-15-intel
63- cov_file : " {project}/dist/coverage.xml"
6463 results_file : " {project}/dist/pytest-results.xml"
6564 # And for windows
6665 - os : windows-latest
67- cov_file : " {project}/dist/coverage.xml"
6866 results_file : " {project}/dist/pytest-results.xml"
69- # But put coverage and results files in the output dir mounted in docker for linux
67+ # But put results files in the output dir mounted in docker for linux
7068 - os : ubuntu-latest
71- cov_file : /output/coverage.xml
7269 results_file : /output/pytest-results.xml
7370
7471 exclude :
@@ -112,35 +109,31 @@ jobs:
112109 # cibuildwheel reports it cannot clean up the temp dir used for testing,
113110 # and fails the build. Sleeping seems to give pytest enough time to
114111 # fully clean up.
115- CIBW_TEST_COMMAND : pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} -- junit-xml=${{ matrix.results_file }} && sleep 2
112+ CIBW_TEST_COMMAND : pytest {project}/tests --junit-xml=${{ matrix.results_file }} && sleep 2
116113 # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
117- CIBW_TEST_COMMAND_WINDOWS : python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} -- junit-xml=${{ matrix.results_file }}
114+ CIBW_TEST_COMMAND_WINDOWS : python -X faulthandler -m pytest -s {project}/tests --junit-xml=${{ matrix.results_file }}
118115 # Disable auditwheel as it isn't compatible with setuptools_dso approach
119116 # https://github.com/mdavidsaver/setuptools_dso/issues/17
120117 CIBW_REPAIR_WHEEL_COMMAND : " "
121118 CIBW_MANYLINUX_X86_64_IMAGE : manylinux_2_28
122119 CIBW_ENVIRONMENT_LINUX : SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
123- CIBW_SKIP : " *-musllinux*" # epicscorelibs doesn't build on musllinux platforms
120+ # epicscorelibs doesn't build on musllinux platforms
121+ # Ensure we never use free-threaded variants, as we (and our EPICS python dependencies) do not support it
122+ CIBW_SKIP : " *-musllinux* cp3??t-*"
124123
125124 - name : Upload Wheel
126125 uses : actions/upload-artifact@v4
127126 with :
128127 name : dist-${{ matrix.os }}-${{ matrix.python }}
129128 path : dist/softioc*
130129
131- - name : Upload coverage to Codecov
132- uses : codecov/codecov-action@v4
133- with :
134- name : ${{ matrix.os }}/${{ matrix.python }}
135- directory : dist
136-
137130 test-sdist :
138131 needs : [sdist]
139132 strategy :
140133 fail-fast : false
141134 matrix :
142135 os : [ubuntu-latest, windows-latest, macos-15-intel]
143- python : [cp37, cp38, cp39, cp310, cp311, cp312, cp313]
136+ python : [cp37, cp38, cp39, cp310, cp311, cp312, cp313, cp314 ]
144137
145138 exclude :
146139 # Exclude Windows + Python 3.9 as p4p can't build there, due to numpy bug #27224
0 commit comments