Release v2.4.2.30 #312
Workflow file for this run
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: Build Pip Wheels | |
on: | |
release: | |
types: [ published ] | |
workflow_dispatch: | |
env: | |
VCPKG-VERSION: '2024.04.26' | |
CUDA-VERSION: '11.4.2.47141' | |
CUDA-MAJOR: '11' | |
CUDA-MINOR: '4' | |
jobs: | |
setup: | |
timeout-minutes: 5 | |
runs-on: ubuntu-latest | |
outputs: | |
version_tag: ${{ steps.get-latest-tag.outputs.tag }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: actions-ecosystem/action-get-latest-tag@v1 | |
id: get-latest-tag | |
manylinux-pip-build: | |
needs: setup | |
timeout-minutes: 40 | |
runs-on: ${{ matrix.runner }} | |
container: | |
image: ${{ matrix.docker-image }} | |
options: ${{ matrix.container-options }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: ["x86_64", "aarch64"] | |
py-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
include: | |
- platform: "x86_64" | |
docker-image: "meshlib/meshlib-ubuntu:latest" | |
container-options: "--user root" | |
runner: ubuntu-latest | |
- platform: "aarch64" | |
docker-image: "meshlib/meshlib-ubuntu-arm64:latest" | |
container-options: "--user root" | |
runner: [ 'self-hosted', 'linux-arm64' ] | |
- py-version: "3.8" | |
py-tag: "cp38" | |
py-cmd: "python3.8" | |
- py-version: "3.9" | |
py-tag: "cp39" | |
py-cmd: "python3.9" | |
- py-version: "3.10" | |
py-tag: "cp310" | |
py-cmd: "python3.10" | |
- py-version: "3.11" | |
py-tag: "cp311" | |
py-cmd: "python3.11" | |
- py-version: "3.12" | |
py-tag: "cp312" | |
py-cmd: "python3.12" | |
steps: | |
- name: Git - add safe directory | |
run: git config --global --add safe.directory ${{github.workspace}}/* | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Python setup | |
if: ${{ matrix.py-version != '3.8' }} | |
run: | | |
apt -y update && apt -y upgrade && apt -y install software-properties-common | |
add-apt-repository -y ppa:deadsnakes/ppa && apt -y install ${{ matrix.py-cmd }}-dev ${{ matrix.py-cmd }}-distutils | |
- name: Pip setup | |
run: | | |
curl -sS https://bootstrap.pypa.io/get-pip.py | ${{ matrix.py-cmd }} | |
${{ matrix.py-cmd }} -m pip install --upgrade -r ./requirements/python.txt | |
${{ matrix.py-cmd }} -m pip install pytest | |
- name: Install thirdparty libs | |
run: | | |
ln -s /usr/local/lib/meshlib-thirdparty-lib/lib ./lib | |
ln -s /usr/local/lib/meshlib-thirdparty-lib/include ./include | |
- name: Build | |
run: ./scripts/build_source.sh | |
env: | |
MESHLIB_PYTHON_VERSION: ${{matrix.py-version}} | |
MESHLIB_BUILD_RELEASE: "ON" | |
MESHLIB_BUILD_DEBUG: "OFF" | |
CMAKE_CXX_COMPILER: /usr/bin/clang++-11 | |
# not realy needed | |
CMAKE_C_COMPILER: /usr/bin/clang-11 | |
- name: Run Tests | |
run: MR_LOCAL_RESOURCES=1 xvfb-run -a ./build/Release/bin/MeshViewer -hidden -noEventLoop | |
- name: Unit Tests | |
run: ./build/Release/bin/MRTest | |
- name: Python Tests | |
working-directory: ./build/Release/bin | |
run: ${{ matrix.py-cmd }} ./../../../scripts/run_python_test_script.py -cmd ${{ matrix.py-cmd }} | |
- name: Create and fix Wheel | |
run: | | |
${{ matrix.py-cmd }} -m pip install --upgrade auditwheel wheel setuptools pybind11-stubgen typing-extensions | |
${{ matrix.py-cmd }} ./scripts/wheel/setup_workspace.py | |
cd ./scripts/wheel/meshlib | |
PYTHONPATH=. ${{ matrix.py-cmd }} $(which pybind11-stubgen) --exit-code --output-dir . meshlib.mrmeshpy | |
PYTHONPATH=. ${{ matrix.py-cmd }} $(which pybind11-stubgen) --exit-code --output-dir . meshlib.mrmeshnumpy | |
PYTHONPATH=. ${{ matrix.py-cmd }} $(which pybind11-stubgen) --exit-code --output-dir . meshlib.mrviewerpy | |
${{ matrix.py-cmd }} setup.py bdist_wheel --python-tag=${{matrix.py-tag}} --version ${{needs.setup.outputs.version_tag}} | |
${{ matrix.py-cmd }} -m auditwheel repair --plat manylinux_2_31_${{matrix.platform}} ./dist/*.whl | |
- name: Upload to Test Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ManyLinux-${{matrix.py-cmd}}-${{matrix.platform}} | |
path: ./scripts/wheel/meshlib/wheelhouse/meshlib-*.whl | |
retention-days: 1 | |
windows-pip-build: | |
needs: setup | |
timeout-minutes: 90 | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
py-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
include: | |
- py-version: "3.8" | |
py-tag: "cp38" | |
py-short-version: "38" | |
py-dir: "Python38" | |
py-file: "python38" | |
embed-version: "3.8.9" | |
- py-version: "3.9" | |
py-tag: "cp39" | |
py-short-version: "39" | |
py-dir: "Python39" | |
py-file: "python39" | |
embed-version: "3.9.9" | |
- py-version: "3.10" | |
py-tag: "cp310" | |
py-short-version: "310" | |
py-dir: "Python310" | |
py-file: "python310" | |
embed-version: "3.10.0" | |
- py-version: "3.11" | |
py-tag: "cp311" | |
py-short-version: "311" | |
py-dir: "Python311" | |
py-file: "python311" | |
embed-version: "3.11.0" | |
- py-version: "3.12" | |
py-tag: "cp312" | |
py-short-version: "312" | |
py-dir: "Python312" | |
py-file: "python312" | |
embed-version: "3.12.0" | |
permissions: | |
id-token: write # This is required for requesting the JWT | |
contents: read # This is required for actions/checkout | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Checkout Vcpkg ${{env.VCPKG-VERSION}} | |
working-directory: C:\vcpkg | |
run: | | |
git fetch | |
git checkout ${{env.VCPKG-VERSION}} | |
- name: Restore Vcpkg Cache | |
uses: actions/cache@v4 | |
id: vcpkg-cache | |
with: | |
key: vcpkg-cache-${{env.VCPKG-VERSION}} | |
path: | | |
C:\vcpkg\* | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::259351611210:role/GitHubMeshLibAwsCredsRole | |
aws-region: us-east-1 | |
- name: Update vcpkg packages | |
run: | | |
.\thirdparty\install.bat --write-s3 | |
- name: Vcpkg integrate install | |
working-directory: C:\vcpkg | |
run: C:\vcpkg\vcpkg.exe integrate install | |
- uses: actions/setup-python@v5 | |
id: setup-python | |
with: | |
python-version: ${{matrix.py-version}} | |
- name: Setup python | |
working-directory: C:\vcpkg\installed\x64-windows-meshlib | |
run: | | |
py -${{matrix.py-version}} -m pip install --upgrade pip | |
py -${{matrix.py-version}} -m pip install --upgrade -r ${{ github.workspace }}\requirements\python.txt | |
py -${{matrix.py-version}} -m pip install pytest | |
- name: Setup thirdparty | |
working-directory: ${{ github.workspace }}\thirdparty\python | |
run: | | |
curl https://www.python.org/ftp/python/${{matrix.embed-version}}/python-${{matrix.embed-version}}-embed-amd64.zip --output python-embed.zip | |
tar -xf python-embed.zip ${{matrix.py-file}}.zip | |
- name: Restore CUDA Cache | |
uses: actions/cache@v4 | |
id: cuda-cache | |
with: | |
key: cuda-${{env.CUDA-VERSION}} | |
path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA* | |
- name: Install CUDA | |
if: steps.cuda-cache.outputs.cache-hit != 'true' | |
run: choco install cuda --version=${{env.CUDA-VERSION}} --confirm | |
- name: Setup CUDA | |
shell: bash | |
run: | | |
echo "CUDA_PATH=C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v${{ env.CUDA-MAJOR }}.${{ env.CUDA-MINOR }}" >> $GITHUB_ENV | |
echo "CUDA_PATH_V${{ env.CUDA-MAJOR }}_${{ env.CUDA-MINOR }}=C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v${{ env.CUDA-MAJOR }}.${{ env.CUDA-MINOR }}" >> $GITHUB_ENV | |
echo "CUDA_PATH_VX_Y=CUDA_PATH_V${{ env.CUDA-MAJOR }}_${{ env.CUDA-MINOR }}" >> $GITHUB_ENV | |
echo "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v${{ env.CUDA-MAJOR }}.${{ env.CUDA-MINOR }}\\bin" >> $GITHUB_PATH | |
- name: Install Visual Studio Integration | |
run: | | |
$x = (dir $env:CUDA_PATH -dir -recurse -depth 2).where({$_.name -eq 'visual_studio_integration'}).fullname | |
$y = (dir $x -dir -recurse).where({$_.name -eq 'MSBuildExtensions'}).fullname + '\*' | |
(gi 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\*\BuildCustomizations').fullname.foreach({cp $y $_}) | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Build | |
run: msbuild -m source\MeshLib.sln -p:Configuration=Release -p:PythonVersion=${{matrix.py-short-version}} -p:PythonLibPath=c:\hostedtoolcache\windows\python\${{steps.setup-python.outputs.python-version}}\x64\libs\${{matrix.py-file}}.lib -p:PythonDllPath=c:\hostedtoolcache\windows\python\${{steps.setup-python.outputs.python-version}}\x64\${{matrix.py-file}}.dll -p:PythonIncludePath=c:\hostedtoolcache\windows\python\${{steps.setup-python.outputs.python-version}}\x64\include\ | |
- name: Run Test | |
working-directory: source\x64\Release | |
run: .\MeshViewer.exe -tryHidden -noEventLoop | |
- name: Unit Tests | |
run: py -${{matrix.py-version}} scripts\run_unit_test_script.py Release | |
- name: Python Tests | |
working-directory: source\x64\Release | |
run: py -${{matrix.py-version}} ..\..\..\scripts\run_python_test_script.py -cmd "py -${{matrix.py-version}}" | |
- name: Create and fix Wheel | |
run: | | |
py -${{matrix.py-version}} -m pip install --upgrade pip | |
py -${{matrix.py-version}} -m pip install --upgrade wheel setuptools delvewheel pybind11-stubgen typing-extensions | |
py -${{matrix.py-version}} .\scripts\wheel\setup_workspace.py | |
$env:PYBIND11_STUBGEN_PATH = $PWD.Path + "\source\x64\Release" | |
cd scripts\wheel\meshlib | |
$env:PYTHONPATH = $PWD.Path | |
py -${{matrix.py-version}} ..\pybind11-stubgen.py --exit-code --output-dir . meshlib.mrmeshpy | |
py -${{matrix.py-version}} ..\pybind11-stubgen.py --exit-code --output-dir . meshlib.mrmeshnumpy | |
py -${{matrix.py-version}} ..\pybind11-stubgen.py --exit-code --output-dir . meshlib.mrviewerpy | |
py -${{matrix.py-version}} setup.py bdist_wheel --plat-name=win-amd64 --python-tag=${{matrix.py-tag}} --version ${{needs.setup.outputs.version_tag}} | |
cd ..\..\.. | |
$WheelFile = (powershell -Command Get-ChildItem -Path scripts\wheel\meshlib\dist\*.whl -Name) | |
echo $WheelFile | |
py -${{matrix.py-version}} -m delvewheel repair --add-path source\x64\Release scripts\wheel\meshlib\dist\$WheelFile | |
- name: Upload to Test Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows-python${{ matrix.py-version }} | |
path: wheelhouse\meshlib-*.whl | |
retention-days: 1 | |
macos-pip-build: | |
needs: setup | |
timeout-minutes: 60 | |
runs-on: ${{ matrix.instance }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: ["x86", "arm64"] | |
py-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
include: | |
- platform: "x86" | |
plat-name: macosx_12_0_x86_64 | |
instance: macos-12 | |
- platform: "arm64" | |
plat-name: macosx_12_0_arm64 | |
instance: macos-arm-build | |
- py-version: "3.8" | |
py-tag: "cp38" | |
py-cmd: "python3.8" | |
- py-version: "3.9" | |
py-tag: "cp39" | |
py-cmd: "python3.9" | |
- py-version: "3.10" | |
py-tag: "cp310" | |
py-cmd: "python3.10" | |
- py-version: "3.11" | |
py-tag: "cp311" | |
py-cmd: "python3.11" | |
- py-version: "3.12" | |
py-tag: "cp312" | |
py-cmd: "python3.12" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Fix links x86 | |
if: ${{ matrix.platform == 'x86' }} | |
run: | | |
find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete | |
sudo rm -rf /Library/Frameworks/Python.framework/ | |
brew install --force python@${{ matrix.py-version }} && brew unlink python@${{ matrix.py-version }} && brew unlink python@${{ matrix.py-version }} && brew link --overwrite python@${{ matrix.py-version }} | |
- name: Fix links ARM | |
if: ${{ matrix.platform == 'arm64' }} | |
run: | | |
find /opt/homebrew/bin -lname '*/Library/Frameworks/Python.framework/*' -delete | |
rm -rf /Library/Frameworks/Python.framework/ | |
brew install --force python@${{ matrix.py-version }} && brew unlink python@${{ matrix.py-version }} && brew unlink python@${{ matrix.py-version }} && brew link --overwrite python@${{ matrix.py-version }} | |
- name: Create virtualenv | |
run: | | |
${{ matrix.py-cmd }} -m venv .venv | |
. .venv/bin/activate | |
echo PATH=$PATH >> $GITHUB_ENV | |
- name: Python setup | |
run: | | |
curl -sS https://bootstrap.pypa.io/get-pip.py | ${{ matrix.py-cmd }} | |
${{ matrix.py-cmd }} -m pip install --upgrade -r ./requirements/python.txt | |
${{ matrix.py-cmd }} -m pip install pytest | |
${{ matrix.py-cmd }} -m pip uninstall -y meshlib | |
- name: Install thirdparty libs | |
run: ./scripts/build_thirdparty.sh | |
- name: Build | |
run: ./scripts/build_source.sh | |
env: | |
MESHLIB_PYTHON_VERSION: ${{matrix.py-version}} | |
MESHLIB_BUILD_RELEASE: "ON" | |
MESHLIB_BUILD_DEBUG: "OFF" | |
CMAKE_CXX_COMPILER: /usr/bin/clang++ | |
# not realy needed | |
CMAKE_C_COMPILER: /usr/bin/clang | |
- name: Unit Tests | |
run: ./build/Release/bin/MRTest | |
- name: Python Tests | |
working-directory: ./build/Release/bin | |
run: ${{ matrix.py-cmd }} ./../../../scripts/run_python_test_script.py -cmd ${{ matrix.py-cmd }} | |
- name: Create and fix Wheel | |
run: | | |
${{ matrix.py-cmd }} -m pip install --upgrade pip | |
${{ matrix.py-cmd }} -m pip install --upgrade wheel setuptools delocate==0.10.7 pybind11-stubgen typing-extensions | |
${{ matrix.py-cmd }} ./scripts/wheel/setup_workspace.py | |
cd ./scripts/wheel/meshlib | |
PYTHONPATH=. pybind11-stubgen --exit-code --output-dir . meshlib.mrmeshpy | |
PYTHONPATH=. pybind11-stubgen --exit-code --output-dir . meshlib.mrmeshnumpy | |
PYTHONPATH=. pybind11-stubgen --exit-code --output-dir . meshlib.mrviewerpy | |
${{ matrix.py-cmd }} setup.py bdist_wheel --plat-name=${{matrix.plat-name}} --python-tag=${{matrix.py-tag}} --version ${{needs.setup.outputs.version_tag}} | |
delocate-path meshlib | |
cd ../../.. | |
delocate-wheel -w . -v ./scripts/wheel/meshlib/dist/*.whl | |
- name: Upload to Test Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Macos-${{matrix.py-cmd}}-${{matrix.platform}} | |
path: meshlib-*.whl | |
retention-days: 1 | |
manylinux-pip-test: | |
needs: [setup, manylinux-pip-build] | |
timeout-minutes: 20 | |
runs-on: ${{ matrix.runner }} | |
container: | |
image: ${{matrix.container-prefix}}${{matrix.os}} | |
options: ${{ matrix.container-options }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: ["x86_64", "aarch64"] | |
os: ["ubuntu:20.04", "ubuntu:22.04", "debian:11-slim", "fedora:37", "fedora:39"] | |
include: | |
- platform: "x86_64" | |
runner: ubuntu-latest | |
container-options: "--user root" | |
container-prefix: " " | |
- platform: "aarch64" | |
runner: [ 'self-hosted', 'linux-arm64' ] | |
container-options: "--user root" | |
container-prefix: "arm64v8/" | |
- os: "ubuntu:20.04" | |
py-version: "3.8" | |
py-cmd: "python3.8" | |
- os: "debian:11-slim" | |
py-version: "3.9" | |
py-cmd: "python3.9" | |
- os: "ubuntu:22.04" | |
py-version: "3.10" | |
py-cmd: "python3.10" | |
- os: "fedora:37" | |
py-version: "3.11" | |
py-cmd: "python3.11" | |
- os: "fedora:39" | |
py-version: "3.12" | |
py-cmd: "python3.12" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Ubuntu system setup | |
if: ${{ matrix.os == 'ubuntu:20.04' || matrix.os == 'ubuntu:22.04' || matrix.os == 'debian:11-slim' }} | |
run: apt -y update && apt -y upgrade && apt -y install curl libssl-dev python3-distutils python3-pip | |
- name: Fedora 37 system setup | |
if: ${{matrix.os == 'fedora:37' || matrix.os == 'fedora:39'}} | |
run: dnf -y install python3 pip | |
- name: Pip setup | |
run: | | |
${{ matrix.py-cmd }} -m pip install --upgrade pip | |
${{ matrix.py-cmd }} -m pip uninstall -y meshlib | |
${{ matrix.py-cmd }} -m pip install --upgrade -r ./requirements/python.txt | |
${{ matrix.py-cmd }} -m pip install pytest | |
- name: Download Meshlib wheel from Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: ManyLinux-${{matrix.py-cmd}}-${{matrix.platform}} | |
merge-multiple: true | |
- name: Meshlib wheel install | |
run: ${{ matrix.py-cmd }} -m pip install ${{ matrix.pip-options }} ./meshlib-*.whl | |
- name: Run Python tests | |
working-directory: test_python | |
run: ${{ matrix.py-cmd }} -m pytest -s -v | |
windows-pip-test: | |
needs: [setup, windows-pip-build] | |
timeout-minutes: 20 | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
py-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Download Meshlib wheel from Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: Windows-python${{matrix.py-version}} | |
merge-multiple: true | |
- name: Python setup | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.py-version }} | |
- name: Setup pip | |
run: | | |
py -${{matrix.py-version}} -m pip install --upgrade pip | |
py -${{matrix.py-version}} -m pip uninstall -y meshlib | |
py -${{matrix.py-version}} -m pip install --upgrade -r ./requirements/python.txt | |
py -${{matrix.py-version}} -m pip install pytest | |
- name: Install Meshlib wheel | |
shell: pwsh | |
run: $wheel_file=Get-ChildItem -Filter meshlib*win*.whl; py -${{matrix.py-version}} -m pip install $wheel_file | |
- name: Run Python tests | |
working-directory: test_python | |
run: py -${{matrix.py-version}} -m pytest -s -v | |
macos-pip-test: | |
needs: [setup, macos-pip-build] | |
timeout-minutes: 20 | |
runs-on: ${{ matrix.instance }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: ["arm64", "x86"] | |
py-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
include: | |
- platform: "x86" | |
plat-name: macosx_12_0_x86_64 | |
instance: macos-12 | |
- platform: "arm64" | |
plat-name: macosx_12_0_arm64 | |
instance: macos-arm-build | |
- py-version: "3.8" | |
py-cmd: "python3.8" | |
- py-version: "3.9" | |
py-cmd: "python3.9" | |
- py-version: "3.10" | |
py-cmd: "python3.10" | |
- py-version: "3.11" | |
py-cmd: "python3.11" | |
- py-version: "3.12" | |
py-cmd: "python3.12" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{needs.setup.outputs.version_tag}} | |
- name: Python setup | |
if: ${{ !(matrix.platform == 'x86' && ( matrix.py-version == '3.11' || matrix.py-version == '3.12' ) ) }} | |
run: brew install python@${{matrix.py-version}} | |
- name: Create virtualenv | |
run: | | |
${{ matrix.py-cmd }} -m venv .venv | |
. .venv/bin/activate | |
echo PATH=$PATH >> $GITHUB_ENV | |
- name: Pip setup | |
run: | | |
${{ matrix.py-cmd }} -m pip install --upgrade pip | |
${{ matrix.py-cmd }} -m pip uninstall -y meshlib | |
${{ matrix.py-cmd }} -m pip install --upgrade -r ./requirements/python.txt | |
${{ matrix.py-cmd }} -m pip install pytest | |
- name: Download Meshlib wheel from Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: Macos-${{matrix.py-cmd}}-${{matrix.platform}} | |
merge-multiple: true | |
- name: Meshlib wheel install | |
run: ${{ matrix.py-cmd }} -m pip install ${{ matrix.pip-options }} ./meshlib-*${{matrix.platform}}*.whl | |
- name: Run Python tests | |
working-directory: test_python | |
run: ${{ matrix.py-cmd }} -m pytest -s -v | |
upload-to-release: | |
needs: [manylinux-pip-test, windows-pip-test, macos-pip-test] | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Wheels Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: ManyLinux-* | |
merge-multiple: true | |
- name: Download Wheels Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: Windows-* | |
merge-multiple: true | |
- name: Download Wheels Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: Macos-* | |
merge-multiple: true | |
- name: Install twine | |
run: python3 -m pip install --upgrade pip twine | |
- name: Upload to Production PyPi | |
run: twine upload ./meshlib-*.whl -u __token__ -p ${{ secrets.PYPI_MESHINSPECTOR_TOKEN }} --skip-existing | |
post-release-test: | |
needs: upload-to-release | |
uses: MeshInspector/MeshLib/.github/workflows/release-tests.yml@master | |
delete-artifacts: | |
timeout-minutes: 5 | |
runs-on: ubuntu-20.04 | |
needs: upload-to-release | |
if: always() | |
steps: | |
- name: Delete all ManyLinux | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: ManyLinux-* | |
failOnError: false | |
- name: Delete all Windows | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: Windows-* | |
failOnError: false | |
- name: Delete all Macos | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: Macos-* | |
failOnError: false |