Skip to content

add python 3.12

add python 3.12 #59

Workflow file for this run

name: BuildAndTest
on:
[push, pull_request]
env:
QT_VERSION: 5.15.2
jobs:
build_pymeshlab:
name: Build PyMeshLab
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
pyversion: ['3.8', '3.9', '3.10', '3.11', '3.12']
os: ['ubuntu-20.04', 'macos-latest', 'windows-latest']
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Windows env variables
if: runner.os == 'Windows'
run: |
echo "name=VCINSTALLDIR::C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC" >> $GITHUB_ENV
- name: Setup Windows MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
- name: Install Python ${{ matrix.pyversion }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.pyversion }}
- name: Install dependencies
shell: bash
run: |
sh scripts/${{ runner.os }}/0_setup_env.sh
- name: Cache external libraries sources
id: cache-ext-libs
uses: actions/cache@v3
with:
path: src/meshlab/src/external/downloads/*
key: ${{ runner.os }}-external-libraries
- name: Ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ runner.os }}-${{ github.ref }}
- name: Build PyMeshLab ${{ matrix.pyversion }}
run: |
sh scripts/${{ runner.os }}/1_build.sh --nightly --ccache --use_brew_llvm
- name: Deploy PyMeshLab ${{ matrix.pyversion }}
run: |
sh scripts/${{ runner.os }}/2_deploy.sh
- name: Upload PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
uses: actions/upload-artifact@v3
with:
name: PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
path: pymeshlab
build_wheel:
name: Build PyMeshLab Wheel
runs-on: ${{ matrix.os }}
needs: build_pymeshlab
strategy:
fail-fast: false
matrix:
pyversion: ['3.8', '3.9', '3.10', '3.11', '3.12']
os: ['ubuntu-20.04', 'macos-latest', 'windows-latest']
steps:
- uses: actions/checkout@v3
- name: Download PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
uses: actions/download-artifact@v3
with:
name: PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
path: pymeshlab/
- name: Install Python ${{ matrix.pyversion }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.pyversion }}
- name: Build Wheel
shell: bash
run: |
VER=$(date +%Y.%m.%d)
echo "${VER}.dev0" | tr -d '\n'> PYML_VERSION
pip install wheel
pip wheel . -w wheels/
- name: Upload wheel ${{ runner.os }} python ${{ matrix.pyversion }}
uses: actions/upload-artifact@v3
with:
name: pymeshlab_whl_${{ runner.os }}_python${{ matrix.pyversion }}
path: wheels/pymeshlab*.whl
test_pymeshlab:
name: Test PyMeshLab
runs-on: ${{ matrix.os }}
needs: build_pymeshlab
strategy:
fail-fast: false
matrix:
pyversion: ['3.8', '3.9', '3.10', '3.11', '3.12']
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
steps:
- name: Download PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
uses: actions/download-artifact@v3
with:
name: PyMeshLab_${{ runner.os }}_python${{ matrix.pyversion }}
path: pymeshlab/
- name: Install Python ${{ matrix.pyversion }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.pyversion }}
- name: Install dependencies
run: |
pip install pytest numpy
- name: Set CPU opengl
if: runner.os == 'Windows'
run: |
python -c 'import pymeshlab; pymeshlab.use_cpu_opengl()' #just for windows
- name: Run tests
run: |
pytest --pyargs pymeshlab -m "not glcontext"
#- name: Upload PyMeshLab results
# uses: actions/upload-artifact@v3
# with:
# name: PyMeshLabResults_${{ runner.os }}_python${{ matrix.pyversion }}
# path: pymeshlab/tests/sample_meshes/test_output
test_wheel:
name: Test Wheel
needs: build_wheel
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
pyversion: ['3.8', '3.9', '3.10', '3.11', '3.12']
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
steps:
- name: Download pymeshlab_whl_${{ runner.os }}_python${{ matrix.pyversion }}
uses: actions/download-artifact@v3
with:
name: pymeshlab_whl_${{ runner.os }}_python${{ matrix.pyversion }}
path: .
- name: Install Python ${{ matrix.pyversion }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.pyversion }}
- name: Install wheel and dependencies
shell: bash
run: |
pip install pytest numpy
pip install pymeshlab*.whl
- name: Set CPU opengl
if: runner.os == 'Windows'
run: |
python -c 'import pymeshlab; pymeshlab.use_cpu_opengl()' #just for windows
- name: Run tests
run: |
pytest --pyargs pymeshlab -m "not glcontext"