@@ -3,10 +3,6 @@ name: 🐍 • CI
3
3
on :
4
4
workflow_call :
5
5
inputs :
6
- skip-testing-latest-python :
7
- description : " Whether to skip testing on the latest Python version"
8
- default : false
9
- type : boolean
10
6
setup-z3 :
11
7
description : " Whether to set up Z3"
12
8
default : false
@@ -42,74 +38,23 @@ jobs:
42
38
# set up mold as linker for faster C++ builds
43
39
- name : Set up mold as linker
44
40
uses : rui314/setup-mold@v1
45
- # run the build-and-inspect-python-package action (outputs supported Python versions)
46
41
- uses : hynek/build-and-inspect-python-package@v2
47
- id : baipp
48
- # reduce the list of Python versions by one if the latest Python version is to be skipped
49
- - name : 🐍 Conditionally reduce the list of considered Python versions
50
- run : echo "supported-python-versions=$(echo '${{ steps.baipp.outputs.supported_python_classifiers_json_array }}' | jq -rc 'if ${{ inputs.skip-testing-latest-python }} then .[:-1] else . end')" >> $GITHUB_OUTPUT
51
- id : supported-python-versions
52
- # determine the maximum supported Python version
53
- - name : 🐍 Determine maximum supported Python version
54
- run : echo "max-python-version=$(echo '${{ steps.supported-python-versions.outputs.supported-python-versions }}' | jq --raw-output '.[-1]')" >> $GITHUB_OUTPUT
55
- id : max-python-version
56
- outputs :
57
- python-versions : ${{ steps.supported-python-versions.outputs.supported-python-versions }}
58
- max-python-version : ${{ steps.max-python-version.outputs.max-python-version }}
59
-
60
- python-tests-ubuntu :
61
- name : 🐧 ${{ matrix.python-version }}
62
- needs : dist
63
- strategy :
64
- fail-fast : false
65
- matrix :
66
- # runs Python testing for all supported Python versions on Ubuntu
67
- python-version : ${{ fromJson(needs.dist.outputs.python-versions) }}
68
- uses : ./.github/workflows/reusable-python-tests.yml
69
- with :
70
- runs-on : ubuntu-latest
71
- python-version : ${{ matrix.python-version }}
72
- setup-z3 : ${{ inputs.setup-z3 }}
73
- z3-version : ${{ inputs.z3-version }}
74
42
75
- python-tests-macos :
76
- name : 🍎 ${{ matrix.python-version }} ${{ matrix.runs-on }}
77
- needs : [dist]
43
+ python-tests :
44
+ name : 🐍 ${{ matrix.runs-on }}
78
45
strategy :
79
46
fail-fast : false
80
47
matrix :
81
- # runs Python testing for the minimum and maximum supported Python versions on macOS
82
- python-version :
83
- - ${{ fromJson(needs.dist.outputs.python-versions)[0] }}
84
- - ${{ needs.dist.outputs.max-python-version }}
85
- runs-on : [macos-13, macos-14]
48
+ runs-on : [ubuntu-latest, macos-13, macos-14, windows-latest]
86
49
uses : ./.github/workflows/reusable-python-tests.yml
87
50
with :
88
51
runs-on : ${{ matrix.runs-on }}
89
- python-version : ${{ matrix.python-version }}
90
- setup-z3 : ${{ inputs.setup-z3 }}
91
- z3-version : ${{ inputs.z3-version }}
92
-
93
- python-tests-windows :
94
- name : 🏁 ${{ matrix.python-version }}
95
- needs : [dist]
96
- strategy :
97
- fail-fast : false
98
- matrix :
99
- # runs Python testing for the minimum and maximum supported Python versions on Windows
100
- python-version :
101
- - ${{ fromJson(needs.dist.outputs.python-versions)[0] }}
102
- - ${{ needs.dist.outputs.max-python-version }}
103
- uses : ./.github/workflows/reusable-python-tests.yml
104
- with :
105
- runs-on : windows-latest
106
- python-version : ${{ matrix.python-version }}
107
52
setup-z3 : ${{ inputs.setup-z3 }}
108
53
z3-version : ${{ inputs.z3-version }}
109
54
110
55
python-coverage-upload :
111
56
name : 📈
112
- needs : [python-tests-ubuntu, python-tests-macos, python-tests-windows ]
57
+ needs : [python-tests]
113
58
runs-on : ubuntu-latest
114
59
permissions :
115
60
id-token : write
0 commit comments