Skip to content

Commit a9f4546

Browse files
committed
Merge branch 'dev' into meshsdk
2 parents 190e125 + d864f82 commit a9f4546

File tree

297 files changed

+4449
-3338
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

297 files changed

+4449
-3338
lines changed

.github/actions/python-regression-tests/action.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ inputs:
99
description: "Build config (Release, Debug)"
1010
required: true
1111
type: string
12-
mrbind:
13-
required: true
14-
type: boolean
1512
pytest_args:
1613
description: "Additional pytest arguments"
1714
required: false
@@ -24,11 +21,6 @@ inputs:
2421
description: "S3 path for test artifacts. Make sure it is unique for different jobs"
2522
required: true
2623
type: string
27-
ubuntu20_arm_workaround:
28-
description: "Disable specific tests incompatible with Ubuntu 20.04 ARM configuration"
29-
required: false
30-
type: boolean
31-
default: false
3224
upload_test_artifacts:
3325
required: true
3426
type: boolean
@@ -43,11 +35,9 @@ runs:
4335
echo << EOF
4436
autotest_data_s3_url: ${{ inputs.autotest_data_s3_url }}
4537
build_config: ${{ inputs.build_config }}
46-
mrbind: ${{ inputs.mrbind }}
4738
pytest_args: ${{ inputs.pytest_args }}
4839
smoke: ${{ inputs.smoke }}
4940
test_artifacts_path: ${{ inputs.test_artifacts_path }}
50-
ubuntu20_arm_workaround: ${{ inputs.ubuntu20_arm_workaround }}
5141
upload_test_artifacts: ${{ inputs.upload_test_artifacts }}
5242
EOF
5343
@@ -57,11 +47,9 @@ runs:
5747
run: |
5848
Write-Output "autotest_data_s3_url: ${{ inputs.autotest_data_s3_url }}"
5949
Write-Output "build_config: ${{ inputs.build_config }}"
60-
Write-Output "mrbind: ${{ inputs.mrbind }}"
6150
Write-Output "pytest_args: ${{ inputs.pytest_args }}"
6251
Write-Output "smoke: ${{ inputs.smoke }}"
6352
Write-Output "test_artifacts_path: ${{ inputs.test_artifacts_path }}"
64-
Write-Output "ubuntu20_arm_workaround: ${{ inputs.ubuntu20_arm_workaround }}"
6553
Write-Output "upload_test_artifacts: ${{ inputs.upload_test_artifacts }}"
6654
6755
# cache management: https://github.com/alpinebuster/meshsdk/actions/caches
@@ -91,13 +79,10 @@ runs:
9179
if: ${{ runner.os != 'Windows' }}
9280
shell: bash
9381
working-directory: build/${{ inputs.build_config }}/bin
94-
env:
95-
MR_REGRESSION_TESTS_UBUNTUARM2004_MRBIND_ABI_ISSUES: ${{ fromJSON( inputs.ubuntu20_arm_workaround ) && '1' || '0' }}
9682
run: >
9783
python3 ../../../scripts/run_python_test_script.py
9884
-d '../test_regression'
9985
-s ${{ inputs.smoke }}
100-
-bv ${{ fromJSON( inputs.mrbind ) && '3' || '2' }}
10186
-a='${{ inputs.pytest_args }}'
10287
10388
- name: Python Regression Tests (Windows)
@@ -108,7 +93,6 @@ runs:
10893
py -3 ..\..\..\scripts\run_python_test_script.py
10994
-d '..\test_regression'
11095
-s ${{ inputs.smoke }}
111-
-bv ${{ fromJSON( inputs.mrbind ) && '3' || '2' }}
11296
-a='${{ inputs.pytest_args }}'
11397
11498
- name: Copy test artifacts to S3

.github/workflows/build-test-distribute.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,21 +156,21 @@ jobs:
156156
uses: actions/checkout@v5
157157

158158
- name: Download NuGet Windows Patch Archive
159-
uses: actions/download-artifact@v5
159+
uses: actions/download-artifact@v6
160160
with:
161161
pattern: DotNetPatchArchiveWindows*
162162
path: windows_runtime
163163
merge-multiple: true
164164

165165
- name: Download NuGet Linux Patch Archive
166-
uses: actions/download-artifact@v5
166+
uses: actions/download-artifact@v6
167167
with:
168168
pattern: DotNetPatchArchiveLinux*
169169
path: linux_runtime
170170
merge-multiple: true
171171

172172
- name: Download NuGet DLL
173-
uses: actions/download-artifact@v5
173+
uses: actions/download-artifact@v6
174174
with:
175175
pattern: DotNetDll*
176176
path: dotnet_dll
@@ -188,7 +188,7 @@ jobs:
188188
run: nuget.exe pack Package.nuspec -OutputFileNamesWithoutVersion
189189

190190
- name: Upload NuGet Package
191-
uses: actions/upload-artifact@v4
191+
uses: actions/upload-artifact@v5
192192
with:
193193
name: DistributivesNuGet
194194
path: MeshSDK.nupkg
@@ -213,7 +213,7 @@ jobs:
213213
uses: actions/checkout@v5
214214

215215
- name: Download All Developer Distributives
216-
uses: actions/download-artifact@v5
216+
uses: actions/download-artifact@v6
217217
with:
218218
pattern: Distributives*
219219
merge-multiple: true
@@ -254,7 +254,7 @@ jobs:
254254
BUILD_MACHINE_TOKEN: ${{ secrets.BUILD_MACHINE_TOKEN }}
255255

256256
test-distribution:
257-
if: ${{ needs.config.outputs.upload_artifacts == 'true' }}
257+
if: ${{ !cancelled() && needs.config.outputs.upload_artifacts == 'true' }}
258258
needs: [ config, upload-distributions ]
259259
uses: ./.github/workflows/test-distribution.yml
260260
with:
@@ -280,7 +280,7 @@ jobs:
280280
uses: actions/checkout@v5
281281

282282
- name: Download runners' system stats
283-
uses: actions/download-artifact@v5
283+
uses: actions/download-artifact@v6
284284
with:
285285
pattern: RunnerSysStats*
286286
merge-multiple: true
@@ -348,7 +348,7 @@ jobs:
348348

349349
# generate timing logs archive
350350
- name: Download Timing Logs Archive
351-
uses: actions/download-artifact@v5
351+
uses: actions/download-artifact@v6
352352
with:
353353
pattern: Timing_Logs*
354354
merge-multiple: true
@@ -365,7 +365,7 @@ jobs:
365365
fi
366366
367367
- name: Upload Timing Logs Archive
368-
uses: actions/upload-artifact@v4
368+
uses: actions/upload-artifact@v5
369369
with:
370370
name: time_log
371371
path: time_log.tar.gz

.github/workflows/build-test-emscripten.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ jobs:
129129
130130
- name: Upload Package
131131
if: ${{ inputs.upload_artifacts }}
132-
uses: actions/upload-artifact@v4
132+
uses: actions/upload-artifact@v5
133133
with:
134134
name: Distributives_${{ matrix.package_name }}
135135
path: meshsdk_${{ matrix.package_name }}.zip

.github/workflows/build-test-linux-vcpkg.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,12 @@ jobs:
145145
MR_VERSION: ${{ inputs.app_version }}
146146
# options to be passed to cmake
147147
MR_CMAKE_OPTIONS: >
148+
-DMR_PLATFORM=Linux_vcpkg
148149
-DMR_CXX_STANDARD=${{ matrix.cxx-standard }}
149150
-DMR_PCH_USE_EXTRA_HEADERS=ON
150151
-DCMAKE_CUDA_HOST_COMPILER=/opt/rh/gcc-toolset-11/root/usr/bin/g++
151152
-DMESHSDK_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c && !matrix.skip_mrbind] }}
153+
-DMRVIEWER_NO_GTK=ON
152154
153155
- name: Generate and build Python bindings
154156
if: ${{ inputs.mrbind && !matrix.skip_mrbind }}
@@ -161,14 +163,14 @@ jobs:
161163

162164
#Save timing in artifact
163165
- name: Upload Timings
164-
uses: actions/upload-artifact@v4
166+
uses: actions/upload-artifact@v5
165167
with:
166168
name: Timing_Logs_linux-vcpkg-${{ matrix.arch }}_${{matrix.config}}_${{matrix.compiler}}
167169
path: time_log/
168170

169171
- name: Run Start-and-Exit Tests
170172
timeout-minutes: 3
171-
run: MR_LOCAL_RESOURCES=1 xvfb-run -a ./build/${{ matrix.config }}/bin/MeshViewer -hidden -noEventLoop -unloadPluginsAtEnd
173+
run: xvfb-run -a ./build/${{ matrix.config }}/bin/MeshViewer -hidden -noEventLoop -unloadPluginsAtEnd
172174

173175
- name: Unit Tests
174176
run: ./build/${{ matrix.config }}/bin/MRTest ${{ matrix.skip_mrbind && '--no-python-tests' || '' }}
@@ -236,7 +238,7 @@ jobs:
236238
237239
- name: Upload vcpkg Distribution
238240
if: ${{ inputs.upload_artifacts && matrix.config == 'Release' && matrix.compiler == 'Clang 19' }}
239-
uses: actions/upload-artifact@v4
241+
uses: actions/upload-artifact@v5
240242
with:
241243
name: Distributives_linux-vcpkg-${{ matrix.arch }}
242244
path: meshsdk_linux-vcpkg-${{ matrix.arch }}.tar.xz

.github/workflows/build-test-macos.yml

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ jobs:
164164
165165
- name: Run Start-and-Exit Tests
166166
timeout-minutes: 3
167-
run: MR_LOCAL_RESOURCES=1 ./build/${{ matrix.config }}/bin/MeshViewer.app/Contents/MacOS/MeshViewer -tryHidden -noEventLoop -unloadPluginsAtEnd
167+
run: ./build/${{ matrix.config }}/bin/MeshViewer -tryHidden -noEventLoop -unloadPluginsAtEnd
168168

169169
- name: Unit Tests
170170
run: ./build/${{ matrix.config }}/bin/MRTest
@@ -194,14 +194,48 @@ jobs:
194194
upload_test_artifacts: ${{ inputs.upload_test_artifacts }}
195195

196196
- name: Create Pkg
197-
if: ${{ inputs.upload_artifacts && matrix.config == 'Release' }}
197+
if: ${{ matrix.config == 'Release' }}
198198
run: |
199-
./scripts/distribution_apple.sh
199+
./scripts/distribution_apple.sh ${{ inputs.app_version }}
200200
mv MeshSDK_.pkg meshsdk_${{matrix.os}}.pkg
201201
202+
- name: Extract Pkg
203+
if: ${{ matrix.config == 'Release' }}
204+
run: |
205+
# https://gist.github.com/ugultopu/1adf8e08acb87be649d69419cf7aca3c
206+
pkgutil --expand meshsdk_${{ matrix.os }}.pkg ./meshsdk_install
207+
cd ./meshsdk_install/MeshSDK.pkg
208+
cat Payload | gunzip | cpio -i
209+
210+
- name: Build C++ examples
211+
if: ${{ matrix.config == 'Release' }}
212+
env:
213+
CXX: ${{ steps.setup.outputs.cxx-compiler }}
214+
run: |
215+
cmake \
216+
-S examples/cpp-examples \
217+
-B cpp-examples-build \
218+
-D CMAKE_FRAMEWORK_PATH=$(pwd)/meshsdk_install/MeshSDK.pkg/Frameworks/
219+
cmake \
220+
--build cpp-examples-build \
221+
--parallel $(sysctl -n hw.physicalcpu)
222+
223+
- name: Build C examples
224+
if: ${{ matrix.config == 'Release' }}
225+
env:
226+
CC: ${{ steps.setup.outputs.c-compiler }}
227+
run: |
228+
cmake \
229+
-S examples/c-examples \
230+
-B c-examples-build \
231+
-D CMAKE_FRAMEWORK_PATH=$(pwd)/meshsdk_install/MeshSDK.pkg/Frameworks/
232+
cmake \
233+
--build c-examples-build \
234+
--parallel $(sysctl -n hw.physicalcpu)
235+
202236
- name: Upload Macos Distribution
203237
if: ${{ inputs.upload_artifacts && matrix.config == 'Release' }}
204-
uses: actions/upload-artifact@v4
238+
uses: actions/upload-artifact@v5
205239
env:
206240
ACTIONS_ARTIFACT_UPLOAD_TIMEOUT_MS: 1800000
207241
with:

.github/workflows/build-test-ubuntu-arm64.yml

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,28 @@ jobs:
3636
timeout-minutes: 60
3737
runs-on: ubuntu-24.04-arm
3838
container:
39-
image: ${{ matrix.docker-image }}
39+
image: meshsdk/meshsdk-${{matrix.os}}-arm64:${{inputs.docker_image_tag}}
4040
options: --user root
4141
strategy:
4242
fail-fast: false
4343
matrix:
4444
os: [ ubuntu20, ubuntu22, ubuntu24 ]
4545
config: [ Release ]
46-
compiler: [ clang ]
4746
include:
4847
- os: ubuntu20
49-
docker-image: meshsdk/meshsdk-ubuntu20-arm64:${{ inputs.docker_image_tag }}
48+
compiler: clang
5049
cxx-compiler: /usr/bin/clang++-11
5150
c-compiler: /usr/bin/clang-11
5251
cxx-standard: 20
5352
- os: ubuntu22
54-
docker-image: meshsdk/meshsdk-ubuntu22-arm64:${{ inputs.docker_image_tag }}
53+
compiler: clang
5554
cxx-compiler: /usr/bin/clang++-14
5655
c-compiler: /usr/bin/clang-14
5756
cxx-standard: 20
5857
- os: ubuntu24
59-
docker-image: meshsdk/meshsdk-ubuntu24-arm64:${{ inputs.docker_image_tag }}
60-
cxx-compiler: /usr/bin/clang++-18
61-
c-compiler: /usr/bin/clang-18
58+
compiler: GCC
59+
cxx-compiler: /usr/bin/g++-14
60+
c-compiler: /usr/bin/gcc-14
6261
cxx-standard: 23
6362
permissions:
6463
id-token: write # This is required for requesting the JWT
@@ -106,7 +105,7 @@ jobs:
106105
ln -s /usr/local/lib/meshsdk-thirdparty-lib/include ./include
107106
108107
- name: Install MRBind
109-
if: ${{ inputs.mrbind || inputs.mrbind_c }}
108+
if: ${{ ( inputs.mrbind && matrix.os != 'ubuntu20' ) || inputs.mrbind_c }}
110109
run: scripts/mrbind/install_mrbind_ubuntu.sh
111110

112111
- name: Create virtualenv
@@ -128,7 +127,7 @@ jobs:
128127

129128
- name: Upload C bindings headers
130129
if: ${{ inputs.mrbind && matrix.os == 'ubuntu22' && matrix.config == 'Release' && matrix.compiler == 'clang' }}
131-
uses: actions/upload-artifact@v4
130+
uses: actions/upload-artifact@v5
132131
with:
133132
name: CBindings
134133
path: ./source/MeshSDKC2/include
@@ -145,8 +144,9 @@ jobs:
145144
MR_CMAKE_OPTIONS: >
146145
-DMR_CXX_STANDARD=${{ matrix.cxx-standard }}
147146
-DMR_PCH_USE_EXTRA_HEADERS=ON
148-
-DMESHSDK_BUILD_MRMESH_PY_LEGACY=${{ fromJSON('["ON", "OFF"]')[inputs.mrbind] }}
147+
-DMESHSDK_BUILD_MRMESH_PY_LEGACY=${{ fromJSON('["ON", "OFF"]')[inputs.mrbind && matrix.os != 'ubuntu20'] }}
149148
-DMESHSDK_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c] }}
149+
-DMRVIEWER_NO_XDG_DESKTOP_PORTAL=ON
150150
151151
- name: Generate and build Python bindings
152152
if: ${{ inputs.mrbind }}
@@ -160,7 +160,7 @@ jobs:
160160

161161
- name: Upload Python Stubs
162162
if: ${{ inputs.mrbind && matrix.os == 'ubuntu22' && matrix.config == 'Release' && matrix.compiler == 'clang' }}
163-
uses: actions/upload-artifact@v4
163+
uses: actions/upload-artifact@v5
164164
with:
165165
name: PythonStubs
166166
path: ./scripts/wheel/meshsdk/meshsdk/*.pyi
@@ -171,14 +171,14 @@ jobs:
171171

172172
#Save timing in artifact
173173
- name: Upload Timings
174-
uses: actions/upload-artifact@v4
174+
uses: actions/upload-artifact@v5
175175
with:
176176
name: Timing_Logs_${{matrix.os}}-arm64_${{matrix.config}}_${{matrix.compiler}}
177177
path: time_log/
178178

179179
- name: Run Start-and-Exit Tests
180180
timeout-minutes: 3
181-
run: MR_LOCAL_RESOURCES=1 xvfb-run -a ./build/${{ matrix.config }}/bin/MeshViewer -hidden -noEventLoop -unloadPluginsAtEnd
181+
run: xvfb-run -a ./build/${{ matrix.config }}/bin/MeshViewer -hidden -noEventLoop -unloadPluginsAtEnd
182182

183183
- name: Unit Tests
184184
run: ./build/${{ matrix.config }}/bin/MRTest
@@ -191,20 +191,19 @@ jobs:
191191
run: ./build/${{ matrix.config }}/bin/MRTestC2
192192

193193
- name: Python Sanity Tests
194+
if: ${{ inputs.mrbind }}
194195
timeout-minutes: 8
195196
working-directory: ./build/${{ matrix.config }}/bin
196197
run: python3 ./../../../scripts/run_python_test_script.py -d '../test_python'
197198

198199
- name: Python Regression Tests
199-
if: ${{ inputs.internal_build }}
200+
if: ${{ inputs.internal_build && inputs.mrbind }}
200201
uses: ./.github/actions/python-regression-tests
201202
with:
202203
build_config: ${{ matrix.config }}
203-
mrbind: ${{ inputs.mrbind }}
204204
pytest_args: "--run-cuda=negative"
205205
smoke: ${{ !inputs.full_config_build && matrix.config == 'Debug' }}
206206
test_artifacts_path: ubuntu_arm64/${{ matrix.os }}
207-
ubuntu20_arm_workaround: ${{ inputs.mrbind && matrix.os == 'ubuntu20' }}
208207
upload_test_artifacts: ${{ inputs.upload_test_artifacts }}
209208

210209
- name: Create Deb
@@ -250,7 +249,7 @@ jobs:
250249
251250
- name: Upload Ubuntu Developer Distribution
252251
if: ${{ inputs.upload_artifacts }}
253-
uses: actions/upload-artifact@v4
252+
uses: actions/upload-artifact@v5
254253
with:
255254
name: Distributives_${{matrix.os}}_arm64
256255
path: meshsdk_${{matrix.os}}-arm64-dev.deb

0 commit comments

Comments
 (0)