@@ -16,100 +16,122 @@ jobs:
16
16
strategy :
17
17
fail-fast : false
18
18
matrix :
19
- os : [macos-11, windows-2019]
20
- bitness : [32, 64]
21
19
include :
22
20
# Run 32 and 64 bit version in parallel for Windows
23
- - os : windows-2019
24
- bitness : 64
21
+ - os : windows-2022
25
22
platform_id : win_amd64
26
- - os : windows-2019
27
- bitness : 32
23
+ architecture : x64
24
+ - os : windows-2022
28
25
platform_id : win32
29
- - os : macos-11
30
- bitness : 64
26
+ architecture : x86
27
+ - os : macos-13
31
28
platform_id : macosx_x86_64
32
- exclude :
33
- - os : macos-11
34
- bitness : 32
29
+ architecture : x64
30
+ - os : macos-14
31
+ platform_id : macosx_arm64
32
+ architecture : arm64
35
33
env :
36
- CIBW_BUILD : cp38 -${{ matrix.platform_id }} cp39 -${{ matrix.platform_id }} cp310 -${{ matrix.platform_id }} cp311 -${{ matrix.platform_id }} cp312 -${{ matrix.platform_id }}
37
- CIBW_SKIP : pp* cp35* cp36* cp37*
38
- CIBW_BEFORE_BUILD_MACOS : " source packing/build_pango_mac.sh "
34
+ CIBW_BUILD : cp39 -${{ matrix.platform_id }} cp310 -${{ matrix.platform_id }} cp311 -${{ matrix.platform_id }} cp312 -${{ matrix.platform_id }} cp313 -${{ matrix.platform_id }}
35
+ CIBW_SKIP : pp* cp36* cp37* cp38 *
36
+ CIBW_BEFORE_BUILD_MACOS : " python packing/download_pango_macos.py ${{ matrix.architecture }} "
39
37
CIBW_BEFORE_BUILD_WINDOWS : " python packing/download_dlls.py"
40
38
CIBW_ENVIRONMENT_WINDOWS : " PKG_CONFIG_PATH='C:\\ cibw\\ vendor\\ lib\\ pkgconfig'"
41
39
CIBW_ENVIRONMENT_MACOS : " PKG_CONFIG_PATH='/Users/runner/pangobuild/lib/pkgconfig'"
42
- CIBW_REPAIR_WHEEL_COMMAND_WINDOWS : python packing/inject-dlls.py {wheel} {dest_dir} C:\cibw\vendor\bin
43
40
CIBW_TEST_REQUIRES : pytest pytest-cov
44
41
CIBW_TEST_COMMAND : " bash {project}/packing/test_wheels.sh {project}"
45
42
steps :
46
- - uses : actions/checkout@v3
47
- - uses : actions/setup-python@v4
48
- name : Install Python
49
- with :
50
- python-version : " 3.8"
51
-
52
- - name : Install cibuildwheel
53
- env :
54
- event_name : ${{ github.event_name }}
55
- continue-on-error : true
56
- shell : bash
43
+ - uses : actions/checkout@v4
44
+ - name : Set Path for pkg-config
45
+ if : runner.os == 'windows'
57
46
run : |
58
- python -m pip install cibuildwheel==2.16.1
59
- echo "$event_name"
47
+ $env:Path = "C:\cibw\pkg-config\bin;C:\cibw\vendor\bin;$($env:PATH)"
48
+ echo "$env:Path" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
60
49
61
50
- name : Build wheels (Windows)
62
51
if : runner.os == 'windows'
52
+ shell : pwsh
63
53
run : |
64
- $ErrorActionPreference = 'Stop'
65
- $env:PATH="$env:PATH;C:\cibw\pkg-config\bin"
66
- $env:PKG_CONFIG_PATH="C:\cibw\vendor\lib\pkgconfig"
67
54
Copy-Item packing/LICENSE.bin .
68
55
Rename-Item LICENSE.bin LICENSE.win32
69
- python -m cibuildwheel --output-dir wheelhouse
70
56
71
57
- name : Build wheels (Non-Windows)
72
58
if : runner.os != 'windows'
73
59
run : |
74
60
cp packing/LICENSE.bin .
75
- python -m cibuildwheel --output-dir wheelhouse
61
+
62
+ - name : Build wheels
63
+
64
+ env :
65
+ PKG_CONFIG_PATH : " C:\\ cibw\\ vendor\\ lib\\ pkgconfig"
76
66
77
67
- uses : actions/upload-artifact@v3
78
68
with :
79
69
path : ./wheelhouse/*.whl
80
70
name : wheels-${{ runner.os }}-${{ matrix.platform_id }}
81
71
82
- test_wheels :
83
- name : Test wheels on ${{ matrix.os }}- ${{ matrix.platform_id }}- ${{ matrix.python-version }}
72
+ test_wheels_win :
73
+ name : Test wheels on Windows - ${{ matrix.platform_id }} ( ${{ matrix.python-version }})
84
74
needs : [build_wheels]
85
- runs-on : ${{ matrix.os }}
75
+ runs-on : windows-latest
86
76
strategy :
87
77
fail-fast : false
88
78
matrix :
89
- os : [macos-11, windows-2019]
90
- architecture : [x86, x64]
91
- python-version : ['3.8', '3.9', '3.10', '3.11']
92
- include :
93
- - os : windows-2019
94
- architecture : x64
95
- platform_id : win_amd64
96
- - os : windows-2019
97
- architecture : x86
98
- platform_id : win32
99
- - os : macos-11
100
- architecture : x64
101
- platform_id : macosx_x86_64
102
- exclude :
103
- - os : macos-11
104
- architecture : x86
79
+ architecture : [x64, x86]
80
+ python-version : ['3.9', '3.10', '3.11', '3.12', '3.13']
81
+ include : [
82
+ {platform_id: win_amd64, architecture: x64},
83
+ {platform_id: win32, architecture: x86},
84
+ ]
105
85
steps :
106
- - uses : actions/checkout@v3
86
+ - uses : actions/checkout@v4
107
87
108
- - uses : actions/setup-python@v4
88
+ - uses : actions/setup-python@v5
109
89
name : Install Python
110
90
with :
111
91
python-version : ${{ matrix.python-version }}
112
92
architecture : ${{ matrix.architecture }}
93
+ allow-prereleases : true
94
+
95
+ - uses : actions/download-artifact@v3
96
+ with :
97
+ name : wheels-${{ runner.os }}-${{ matrix.platform_id }}
98
+ path : ~/wheelhouse
99
+
100
+ - name : Install test dependencies
101
+ run : |
102
+ pip install pytest pytest-cov
103
+
104
+ - name : Install wheels
105
+ run : |
106
+ pip install --no-index --find-links ~/wheelhouse ManimPango
107
+
108
+ - name : Run tests
109
+ shell : bash
110
+ run : |
111
+ bash packing/test_wheels.sh $(pwd)
112
+
113
+ test_wheels_mac :
114
+ name : Test wheels on macOS - ${{ matrix.platform_id }} (${{ matrix.python-version }})
115
+ needs : [build_wheels]
116
+ runs-on : ${{ matrix.os }}
117
+ strategy :
118
+ fail-fast : false
119
+ matrix :
120
+ architecture : [x64, arm64]
121
+ python-version : ['3.9', '3.10', '3.11', '3.12', '3.13']
122
+ include : [
123
+ {platform_id: macosx_x86_64, architecture: x64, os: macos-13},
124
+ {platform_id: macosx_arm64, architecture: arm64, os: macos-14},
125
+ ]
126
+ steps :
127
+ - uses : actions/checkout@v4
128
+
129
+ - uses : actions/setup-python@v5
130
+ name : Install Python
131
+ with :
132
+ python-version : ${{ matrix.python-version }}
133
+ architecture : ${{ matrix.architecture == 'arm64' && null || matrix.architecture }}
134
+ allow-prereleases : true
113
135
114
136
- uses : actions/download-artifact@v3
115
137
with :
@@ -130,7 +152,7 @@ jobs:
130
152
bash packing/test_wheels.sh $(pwd)
131
153
132
154
publish_wheels :
133
- needs : [test_wheels ]
155
+ needs : [test_wheels_mac, test_wheels_win ]
134
156
name : Upload wheels
135
157
runs-on : ubuntu-latest
136
158
if : github.event_name== 'release'
@@ -162,7 +184,7 @@ jobs:
162
184
if : github.event_name== 'release'
163
185
steps :
164
186
- name : Checkout
165
- uses : actions/checkout@v3
187
+ uses : actions/checkout@v4
166
188
167
189
- name : Setup Python
168
190
uses : actions/setup-python@v4
@@ -221,7 +243,7 @@ jobs:
221
243
asset_content_type : application/gzip
222
244
223
245
success :
224
- needs : [test_wheels ]
246
+ needs : [test_wheels_win, test_wheels_mac ]
225
247
runs-on : ubuntu-latest
226
248
name : Building and testing of wheels success
227
249
steps :
0 commit comments