.github/workflows/build-wheel.yml #123
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: Create Python wheel using Conda | |
on: | |
workflow_dispatch | |
# push: | |
# branches: [ master ] | |
env: | |
PYTHONUTF8: 1 | |
jobs: | |
build: | |
name: Build for python ${{ matrix.python-version }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ 'ubuntu-22.04', 'macos-11', 'windows-2019' ] | |
python-version: [ '3.9', '3.10', '3.11', '3.12' ] | |
steps: | |
# see https://github.com/marketplace/actions/download-workflow-artifact | |
# - name: Download artifact | |
# uses: dawidd6/action-download-artifact@v2 | |
# if: ${{ matrix.os == 'ubuntu-22.04' }} | |
# with: | |
# workflow: build-vtk.yml | |
# path: /tmp/vtk-wheels | |
# - name: List downloaded wheels | |
# if: ${{ matrix.os == 'ubuntu-22.04' }} | |
# run: | | |
# find /tmp/vtk-wheels -ls | |
# ls -ld /tmp/vtk-wheels/*-cp${{ matrix.python-version }}/vtk-*.whl | |
- name: Checkout project | |
uses: actions/checkout@v2 | |
# See https://cibuildwheel.readthedocs.io/en/stable/ | |
# Not usable for now, because cadquery libraries require glibc 2.31, | |
# but the manylinux images have been created only up to 2.24 (as of 2022-04-11). | |
# - name: Build wheels | |
# uses: pypa/[email protected] | |
# with: | |
# output-dir: dist | |
# see https://github.com/marketplace/actions/setup-miniconda | |
- name: Setup Conda | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
#miniforge-version: latest | |
miniconda-version: latest | |
activate-environment: cadquery-ocp | |
python-version: ${{ matrix.python-version }} | |
channels: cadquery, conda-forge, defaults | |
- name: Ubuntu Deps Setup | |
shell: bash -l {0} | |
run: | | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
sudo apt update | |
sudo apt install -y libegl1 libegl1-mesa-dev | |
fi | |
- name: Conda Deps Setup | |
if: ${{ matrix.os != 'ubuntu-22.04' }} | |
shell: bash -l {0} | |
run: | | |
conda install -c cadquery -n cadquery-ocp -y ocp=7.7.2.* vtk=9.2.* | |
- name: Conda Deps Setup Linux | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
shell: bash -l {0} | |
run: | | |
conda install -c cadquery -n cadquery-ocp -y ocp=7.7.2.* vtk=9.2.* occt=7.7.2=all* auditwheel | |
- name: Pip Deps Setup 1 | |
shell: bash -l {0} | |
run: | | |
pip install --upgrade pip | |
pip install build setuptools wheel requests delocate delvewheel | |
- name: Pip Deps Setup 2 | |
shell: bash -l {0} | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
pip install auditwheel patchelf | |
# - name: Manylinux Build 1 | |
# shell: bash -l {0} | |
# if: ${{ matrix.os == 'ubuntu-22.04' }} | |
# run: | | |
# export VTK_MANYLINUX=/tmp/vtk-manylinux | |
# pip install -t $VTK_MANYLINUX --no-deps /tmp/vtk-wheels/*-cp${{ matrix.python-version }}/vtk-*.whl | |
# python -m build --no-isolation --wheel | |
- name: Conda-only Build | |
shell: bash -l {0} | |
run: | | |
python -m build --no-isolation --wheel | |
- name: Print info | |
shell: bash -l {0} | |
run: | | |
conda info | |
conda list --explicit | |
echo '${{ github.event_name }} ${{ github.ref }}' | |
- name: Test wheel | |
shell: bash -l {0} | |
run: | | |
conda deactivate | |
conda create --yes -n cadquerytest python=${{ matrix.python-version }} | |
conda activate cadquerytest | |
ls dist/* | |
pip install dist/*.whl | |
python -c "import OCP;print('OCP imported successfully')" | |
# see https://github.com/marketplace/actions/upload-a-build-artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: cadquery-ocp-${{ matrix.os }}-cp${{ matrix.python-version }} | |
path: dist/*.whl |