.github/workflows/local-build.yml #7
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: Local Build Method of Creating Python wheels | |
on: | |
workflow_dispatch | |
# push: | |
# branches: [ master ] | |
env: | |
PYTHONUTF8: 1 | |
jobs: | |
build: | |
name: Build Python wheels for ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ 'macos-14' ] #[ 'ubuntu-22.04', 'macos-11', 'macos-14', '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: build-env | |
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: | | |
python -m pip install --upgrade pip | |
python -m pip install build setuptools wheel requests delocate delvewheel | |
- name: Pip Deps Setup 2 | |
shell: bash -l {0} | |
if: ${{ matrix.os == 'ubuntu-22.04' }} | |
run: | | |
python -m 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: Run local build script | |
run: | | |
./local-build.sh | |
- 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_SUBDIR=osx-arm64 conda create --yes -n cadquerytest python=3.10 | |
conda run -n cadquerytest conda config --env --set subdir osx-arm64 | |
conda activate cadquerytest | |
python -m 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 |