@@ -16,100 +16,122 @@ jobs:
1616    strategy :
1717      fail-fast : false 
1818      matrix :
19-         os : [macos-11, windows-2019] 
20-         bitness : [32, 64] 
2119        include :
2220          #  Run 32 and 64 bit version in parallel for Windows
23-           - os : windows-2019 
24-             bitness : 64 
21+           - os : windows-2022 
2522            platform_id : win_amd64 
26-           -  os :  windows-2019 
27-              bitness :  32 
23+              architecture :  x64 
24+           -  os :  windows-2022 
2825            platform_id : win32 
29-           -  os :  macos-11 
30-              bitness :  64 
26+              architecture :  x86 
27+           -  os :  macos-13 
3128            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 
3533    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 }} " 
3937      CIBW_BEFORE_BUILD_WINDOWS : " python packing/download_dlls.py" 
4038      CIBW_ENVIRONMENT_WINDOWS : " PKG_CONFIG_PATH='C:\\ cibw\\ vendor\\ lib\\ pkgconfig'" 
4139      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 
4340      CIBW_TEST_REQUIRES : pytest pytest-cov 
4441      CIBW_TEST_COMMAND : " bash {project}/packing/test_wheels.sh {project}" 
4542    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' 
5746        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  
6049
6150       - name : Build wheels (Windows) 
6251        if : runner.os == 'windows' 
52+         shell : pwsh 
6353        run : | 
64-           $ErrorActionPreference = 'Stop' 
65-           $env:PATH="$env:PATH;C:\cibw\pkg-config\bin" 
66-           $env:PKG_CONFIG_PATH="C:\cibw\vendor\lib\pkgconfig" 
6754          Copy-Item packing/LICENSE.bin . 
6855          Rename-Item LICENSE.bin LICENSE.win32 
69-           python -m cibuildwheel --output-dir wheelhouse 
7056
7157       - name : Build wheels (Non-Windows) 
7258        if : runner.os != 'windows' 
7359        run : | 
7460          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" 
7666
7767      - uses : actions/upload-artifact@v3 
7868        with :
7969          path : ./wheelhouse/*.whl 
8070          name : wheels-${{ runner.os }}-${{ matrix.platform_id }} 
8171
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 }})  
8474    needs : [build_wheels] 
85-     runs-on : ${{ matrix.os }} 
75+     runs-on : windows-latest 
8676    strategy :
8777      fail-fast : false 
8878      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+         ] 
10585    steps :
106-       - uses : actions/checkout@v3  
86+       - uses : actions/checkout@v4  
10787
108-       - uses : actions/setup-python@v4  
88+       - uses : actions/setup-python@v5  
10989        name : Install Python 
11090        with :
11191          python-version : ${{ matrix.python-version }} 
11292          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 
113135
114136      - uses : actions/download-artifact@v3 
115137        with :
@@ -130,7 +152,7 @@ jobs:
130152          bash packing/test_wheels.sh $(pwd) 
131153
132154   publish_wheels :
133-     needs : [test_wheels ] 
155+     needs : [test_wheels_mac, test_wheels_win ] 
134156    name : Upload wheels 
135157    runs-on : ubuntu-latest 
136158    if : github.event_name== 'release' 
@@ -162,7 +184,7 @@ jobs:
162184    if : github.event_name== 'release' 
163185    steps :
164186      - name : Checkout 
165-         uses : actions/checkout@v3  
187+         uses : actions/checkout@v4  
166188
167189      - name : Setup Python 
168190        uses : actions/setup-python@v4 
@@ -221,7 +243,7 @@ jobs:
221243          asset_content_type : application/gzip 
222244
223245  success :
224-     needs : [test_wheels ] 
246+     needs : [test_wheels_win, test_wheels_mac ] 
225247    runs-on : ubuntu-latest 
226248    name : Building and testing of wheels success 
227249    steps :
0 commit comments