Skip to content

Commit 71bfa33

Browse files
committed
Updates to CI and fix tests
- tests: fix test warning, use absolute path - Don't use `windows-2016` (it's nearing EOL) see #66 - Upgrade dependencies for the build - Don't build subprojects manually on macOS build - Add separate test workflow and not use docker in tests - Only upload wheels if tests pass - Include license files in all the wheels - Link wheels statically on macOS Signed-off-by: Naveen M K <[email protected]>
1 parent 1c6cfc0 commit 71bfa33

File tree

12 files changed

+164
-206
lines changed

12 files changed

+164
-206
lines changed

.github/workflows/build.yml

Lines changed: 81 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- main
7+
- fix-ci-win
78
release:
89
types: [created]
910

@@ -14,14 +15,14 @@ jobs:
1415
strategy:
1516
fail-fast: false
1617
matrix:
17-
os: [macos-latest, windows-2016]
18+
os: [macos-latest, windows-2019]
1819
bitness: [32, 64]
1920
include:
2021
# Run 32 and 64 bit version in parallel for Windows
21-
- os: windows-2016
22+
- os: windows-2019
2223
bitness: 64
2324
platform_id: win_amd64
24-
- os: windows-2016
25+
- os: windows-2019
2526
bitness: 32
2627
platform_id: win32
2728
- os: macos-latest
@@ -32,16 +33,14 @@ jobs:
3233
bitness: 32
3334
env:
3435
CIBW_BUILD: cp37-${{ matrix.platform_id }} cp38-${{ matrix.platform_id }} cp39-${{ matrix.platform_id }} cp310-${{ matrix.platform_id }}
35-
CIBW_SKIP: pp* cp35 cp36
36-
CIBW_BEFORE_BUILD_MACOS: "source packing/build_pango_mac.sh && pip install cython && cd manimpango && cythonize cmanimpango.pyx -3 -k -f && cd ../ && pip install . && pkg-config --libs pango"
37-
CIBW_BEFORE_BUILD_WINDOWS: "pip install cython && python packing/download_dlls.py && cd manimpango && cythonize cmanimpango.pyx -3 -k -f && cd ../ && pkg-config --libs pango && pip install ."
36+
CIBW_SKIP: pp* cp35* cp36*
37+
CIBW_BEFORE_BUILD_MACOS: "source packing/build_pango_mac.sh"
38+
CIBW_BEFORE_BUILD_WINDOWS: "python packing/download_dlls.py"
3839
CIBW_ENVIRONMENT_WINDOWS: "PKG_CONFIG_PATH='C:\\cibw\\vendor\\lib\\pkgconfig'"
3940
CIBW_ENVIRONMENT_MACOS: "PKG_CONFIG_PATH='/Users/runner/pangobuild/lib/pkgconfig'"
4041
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: python packing/inject-dlls.py {wheel} {dest_dir} C:\cibw\vendor\bin
41-
CIBW_TEST_REQUIRES: pytest Cython pytest-cov
42+
CIBW_TEST_REQUIRES: pytest pytest-cov
4243
CIBW_TEST_COMMAND: "bash {project}/packing/test_wheels.sh {project}"
43-
CIBW_BEFORE_TEST_WINDOWS: bash {project}/packing/build_minimal_windows_image.sh ${{ matrix.bitness }} {project}
44-
CIBW_TEST_COMMAND_WINDOWS: bash {project}/packing/test_windows_wheels.sh ${{ matrix.bitness }} {project}
4544
steps:
4645
- uses: actions/checkout@v2
4746
- uses: actions/setup-python@v2
@@ -55,7 +54,7 @@ jobs:
5554
continue-on-error: true
5655
shell: bash
5756
run: |
58-
python -m pip install cibuildwheel==2.1.3
57+
python -m pip install cibuildwheel==2.3.0
5958
echo "$event_name"
6059
6160
- name: Build wheels(Windows)
@@ -78,12 +77,81 @@ jobs:
7877
with:
7978
path: ./wheelhouse/*.whl
8079
name: wheels-${{ runner.os }}-${{ matrix.platform_id }}
80+
81+
test_wheels:
82+
name: Test Wheels on ${{ matrix.os }}-${{ matrix.platform_id }}-${{ matrix.python-version }}
83+
needs: [build_wheels]
84+
runs-on: ${{ matrix.os }}
85+
strategy:
86+
fail-fast: false
87+
matrix:
88+
os: [macos-latest, windows-2019]
89+
architecture: [x86, x64]
90+
python-version: ['3.7', '3.8', '3.9', '3.10']
91+
include:
92+
- os: windows-2019
93+
architecture: x64
94+
platform_id: win_amd64
95+
- os: windows-2019
96+
architecture: x86
97+
platform_id: win32
98+
- os: macos-latest
99+
architecture: x64
100+
platform_id: macosx_x86_64
101+
exclude:
102+
- os: macos-latest
103+
architecture: x86
104+
steps:
105+
- uses: actions/checkout@v2
106+
107+
- uses: actions/setup-python@v2
108+
name: Install Python
109+
with:
110+
python-version: ${{ matrix.python-version }}
111+
architecture: ${{ matrix.architecture }}
112+
113+
- uses: actions/download-artifact@v2
114+
with:
115+
name: wheels-${{ runner.os }}-${{ matrix.platform_id }}
116+
path: ~/wheelhouse
117+
118+
- name: Install Test Dependencies
119+
run: |
120+
pip install pytest pytest-cov
121+
122+
- name: Install Wheels
123+
run: |
124+
pip install --no-index --find-links ~/wheelhouse ManimPango
125+
126+
- name: Run tests
127+
shell: bash
128+
run: |
129+
bash packing/test_wheels.sh $(pwd)
130+
131+
publish_wheels:
132+
needs: [test_wheels]
133+
name: Upload wheels
134+
runs-on: ubuntu-latest
135+
if: github.event_name== 'release'
136+
steps:
137+
- name: Setup Python
138+
uses: actions/setup-python@v2
139+
with:
140+
python-version: "3.9"
141+
142+
- uses: actions/download-artifact@v2
143+
with:
144+
path: downloads/
145+
81146
- name: Publish (Release)
82147
if: github.event_name == 'release'
148+
shell: bash
83149
env:
84150
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
85151
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
86152
run: |
153+
mkdir -p wheelhouse/
154+
find downloads/ -name \*.whl -exec cp {} wheelhouse \;
87155
pip install twine
88156
twine upload wheelhouse/*.whl
89157
@@ -151,9 +219,9 @@ jobs:
151219
asset_content_type: application/gzip
152220

153221
success:
154-
needs: [build_wheels]
222+
needs: [test_wheels]
155223
runs-on: ubuntu-latest
156-
name: Build Wheels Sucessfully
224+
name: Build and Test Wheels Successfully
157225
steps:
158226
- name: Success
159-
run: echo Build Wheels Sucessfully
227+
run: echo Build and Test Wheels Successfully

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ jobs:
122122
runs-on: ${{matrix.os}}
123123
strategy:
124124
matrix:
125-
os: [windows-2016]
125+
os: [windows-2019]
126126
python-version: ['3.7', '3.8', '3.9', '3.10']
127127
steps:
128128
- uses: actions/checkout@v2

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ prune docs/_build
55
include *.md
66
include *.txt
77
include .coveragerc
8+
include LICENSE*

packing/Windows.dockerfile

Lines changed: 0 additions & 17 deletions
This file was deleted.

packing/build_minimal_windows_image.sh

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)