Merge pull request #1087 from VincentRouvreau/gudhi_3.9.0rc2 #38
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pip packaging windows | ||
on: | ||
release: | ||
types: [published] | ||
# Python 3.8 specific case where NumPy 2.x will not be supported | ||
# numpy~=1.21.4 means any numpy=1.21.*, but also numpy>=1.21.4 (numpy~=1.21 do not work as it means any numpy==1.*) | ||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
name: Build wheels for Python 3.8 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.8 | ||
architecture: x64 | ||
- name: Install dependencies | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
set VCPKG_BUILD_TYPE=release | ||
vcpkg install eigen3 cgal --triplet x64-windows | ||
vcpkg version | ||
ls "C:\vcpkg\installed\x64-windows\bin\" | ||
python -m pip install --user numpy~=1.17.3 | ||
python -m pip install --user -r .\ext\gudhi-deploy\build-requirements.txt | ||
python -m pip install --user twine | ||
python -m pip list | ||
- name: Build python wheel and install it | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
mkdir build | ||
cd ".\build\" | ||
cmake -DCMAKE_BUILD_TYPE=Release -DFORCE_EIGEN_DEFAULT_DENSE_INDEX_TYPE_TO_INT=ON -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. | ||
cd ".\src\python\" | ||
cp "C:\vcpkg\installed\x64-windows\bin\mpfr*.dll" ".\gudhi\" | ||
cp "C:\vcpkg\installed\x64-windows\bin\gmp*.dll" ".\gudhi\" | ||
python -m build -n -w | ||
ls ".\dist\" | ||
cd ".\dist\" | ||
Get-ChildItem *.whl | ForEach-Object{python -m pip install --user $_.Name} | ||
- name: Test python wheel | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
python -m pip install --user numpy --upgrade | ||
python -m pip install --user pytest | ||
python -c "import gudhi; print(gudhi.__version__)" | ||
python -m pytest -v ".\src\python\test\test_alpha_complex.py" | ||
python -m pytest -v ".\src\python\test\test_bottleneck_distance.py" | ||
python -m pytest -v ".\src\python\test\test_cubical_complex.py" | ||
python -m pytest -v ".\src\python\test\test_rips_complex.py" | ||
- name: Publish on PyPi | ||
env: | ||
TWINE_USERNAME: __token__ | ||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
run: python -m twine upload build/src/python/dist/*.whl | ||
# Python 3.9+ specific case where NumPy 2.x will be supported | ||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
strategy: | ||
max-parallel: 4 | ||
matrix: | ||
python-version: ['3.9', '3.10', '3.11', '3.12'] | ||
include: | ||
- python-version: '3.9' | ||
numpy-version: '1.19.3' | ||
- python-version: '3.10' | ||
numpy-version: '1.21.6' | ||
- python-version: '3.11' | ||
numpy-version: '1.23.2' | ||
- python-version: '3.12' | ||
numpy-version: '1.26.0' | ||
name: Build wheels for Python ${{ matrix.python-version }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
architecture: x64 | ||
# For python >=3.9, numpy >= 2.0 for package build and ABI compatibility with numpy 1.X and 2.X | ||
# cf. https://numpy.org/doc/stable/dev/depending_on_numpy.html#numpy-2-0-specific-advice | ||
- name: Install dependencies | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
set VCPKG_BUILD_TYPE=release | ||
vcpkg install eigen3 cgal --triplet x64-windows | ||
vcpkg version | ||
ls "C:\vcpkg\installed\x64-windows\bin\" | ||
python -m pip install --user numpy>=2.0 | ||
python -m pip install --user -r .\ext\gudhi-deploy\build-requirements.txt | ||
python -m pip install --user twine | ||
python -m pip list | ||
- name: Build python wheel and install it | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
mkdir build | ||
cd ".\build\" | ||
cmake -DCMAKE_BUILD_TYPE=Release -DFORCE_EIGEN_DEFAULT_DENSE_INDEX_TYPE_TO_INT=ON -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. | ||
cd ".\src\python\" | ||
cp "C:\vcpkg\installed\x64-windows\bin\mpfr*.dll" ".\gudhi\" | ||
cp "C:\vcpkg\installed\x64-windows\bin\gmp*.dll" ".\gudhi\" | ||
python -m build -n -w | ||
ls ".\dist\" | ||
cd ".\dist\" | ||
Get-ChildItem *.whl | ForEach-Object{python -m pip install --user $_.Name} | ||
# Test ABI compatibility with numpy 1.X | ||
- name: Test python wheel | ||
run: | | ||
$ErrorActionPreference = 'Stop' | ||
python -m pip install --user numpy~=${{ matrix.numpy-version }} | ||
python -m pip install --user pytest | ||
python -c "import gudhi; print(gudhi.__version__)" | ||
python -m pytest -v ".\src\python\test\test_alpha_complex.py" | ||
python -m pytest -v ".\src\python\test\test_bottleneck_distance.py" | ||
python -m pytest -v ".\src\python\test\test_cubical_complex.py" | ||
python -m pytest -v ".\src\python\test\test_rips_complex.py" | ||
- name: Publish on PyPi | ||
env: | ||
TWINE_USERNAME: __token__ | ||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
run: python -m twine upload build/src/python/dist/*.whl |