Skip to content

.github/workflows/build-wheel.yml #121

.github/workflows/build-wheel.yml

.github/workflows/build-wheel.yml #121

Workflow file for this run

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.8', '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 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*
- 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}
if: ${{ matrix.os != 'ubuntu-22.04' }}
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
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