Exact sw #2730
Workflow file for this run
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 build windows | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: windows-latest | |
strategy: | |
max-parallel: 4 | |
matrix: | |
python-version: ['3.9'] | |
include: | |
- python-version: '3.9' | |
numpy-version: '1.19.3' | |
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 | |
- 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' | |
Get-Location | |
dir | |
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_delaunay_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: Upload Windows python wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows python wheel | |
path: build/src/python/dist/*.whl |