summaryrefslogtreecommitdiff
path: root/.github/workflows/pip-packaging-osx.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/pip-packaging-osx.yml')
-rw-r--r--.github/workflows/pip-packaging-osx.yml61
1 files changed, 61 insertions, 0 deletions
diff --git a/.github/workflows/pip-packaging-osx.yml b/.github/workflows/pip-packaging-osx.yml
new file mode 100644
index 00000000..9ddbcfce
--- /dev/null
+++ b/.github/workflows/pip-packaging-osx.yml
@@ -0,0 +1,61 @@
+name: pip packaging osx
+
+on:
+ release:
+ types: [published]
+
+env:
+ MACOSX_DEPLOYMENT_TARGET: 10.15
+ _PYTHON_HOST_PLATFORM: macosx-10.15-universal2
+ ARCHFLAGS: "-arch arm64 -arch x86_64"
+
+jobs:
+ build:
+ runs-on: macos-latest
+ strategy:
+ max-parallel: 4
+ matrix:
+ python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
+ name: Build wheels for Python ${{ matrix.python-version }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ architecture: x64
+ - name: Install dependencies
+ run: |
+ brew update || true
+ brew install boost eigen gmp mpfr cgal || true
+ python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt
+ python -m pip install --user twine delocate
+ ./scripts/build_osx_universal_gmpfr.sh
+ # Now the universal libs are in $PWD/deps-uni/lib
+ - name: Build python wheel
+ run: |
+ export GMP_LIB_DIR=$PWD/deps-uni/lib
+ export GMPXX_LIB_DIR=$PWD/deps-uni/lib
+ export MPFR_LIB_DIR=$PWD/deps-uni/lib
+ python --version
+ mkdir build
+ cd build
+ cmake -DCMAKE_BUILD_TYPE=Release -DPython_ADDITIONAL_VERSIONS=3 ..
+ cd src/python
+ python setup.py bdist_wheel
+ - name: Install and test python wheel
+ run: |
+ python -m pip install --user pytest build/src/python/dist/*.whl
+ python -c "import gudhi; print(gudhi.__version__)"
+ python -m pytest src/python/test/test_alpha_complex.py
+ - name: Publish on PyPi
+ env:
+ TWINE_USERNAME: __token__
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+ run: |
+ mkdir wheelhouse
+ export PATH="$PATH:`python -m site --user-base`/bin"
+ delocate-listdeps build/src/python/dist/*
+ delocate-wheel --require-archs universal2 -w wheelhouse build/src/python/dist/*
+ python -m twine upload wheelhouse/*