1212 - ' pack*'
1313
1414env :
15- PV_TAG : v5.12 .0
15+ PV_TAG : v5.13 .0
1616 PV_REPO : topology-tool-kit/ttk-paraview
1717
1818jobs :
2424 runs-on : ${{ matrix.os }}
2525 strategy :
2626 matrix :
27- os : [ubuntu-20.04, ubuntu-22.04]
27+ os : [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04 ]
2828 steps :
2929 - uses : actions/checkout@v4
3030 name : Checkout TTK source code
9999 runs-on : ${{ matrix.os }}
100100 strategy :
101101 matrix :
102- os : [ubuntu-20.04, ubuntu-22.04]
102+ os : [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04 ]
103103 steps :
104104 - uses : actions/checkout@v4
105105 name : Checkout TTK source code
@@ -126,6 +126,12 @@ jobs:
126126 # pvpython does not embed the correct PYTHONPATH
127127 echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
128128
129+ - name : Set PYTHONPATH for Ubuntu 24.04 pvpython
130+ if : matrix.os == 'ubuntu-24.04'
131+ run : |
132+ # pvpython does not embed the correct PYTHONPATH
133+ echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
134+
129135 - name : Run TTK tests
130136 uses : ./.github/actions/test-ttk-unix
131137
@@ -152,6 +158,11 @@ jobs:
152158 cd ttk-data
153159 # no X server
154160 rm python/geometryApproximation.py
161+ # remove buggy example
162+ # related issue: https://github.com/topology-tool-kit/ttk/issues/1055
163+ rm python/nestedTrackingFromOverlap.py
164+ # remove examples which fill up the memory
165+ rm python/topologicalOptimization_darkSky.py
155166 python3 -u python/run.py
156167
157168 - name : Test ttk-data Python scripts results [NOT ENFORCED]
@@ -166,7 +177,13 @@ jobs:
166177 # Build macOS #
167178 # ------------#
168179 build-macos :
169- runs-on : macos-12
180+ runs-on : ${{ matrix.os }}
181+ strategy :
182+ matrix :
183+ os : [macos-12, macos-14]
184+ env :
185+ DYLD_LIBRARY_PATH : /usr/local/lib
186+
170187 steps :
171188 - uses : actions/checkout@v4
172189 name : Checkout TTK source code
@@ -183,17 +200,23 @@ jobs:
183200 brew install --cask xquartz
184201 brew install llvm mesa glew qt@5 ninja
185202 # TTK dependencies
186- brew install boost eigen graphviz numpy websocketpp
203+ brew install boost eigen graphviz spectra sqlite zlib numpy qhull
187204
188205 - name : Install optional dependencies
189206 uses : ./.github/actions/install-deps-unix
190207
191208 - name : Fetch & install TTK-ParaView
192209 run : |
193- wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
194- tar xzf ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
210+ if [[ "${{ matrix.os }}" == "macos-12" ]]; then
211+ wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
212+ tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
213+ fi
214+ if [[ "${{ matrix.os }}" == "macos-14" ]]; then
215+ wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
216+ tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
217+ fi
195218 sudo cp -r ttk-paraview/* /usr/local
196- pvpython -m pip install scikit-learn
219+ pvpython -m pip install --break-system-packages scikit-learn
197220
198221 - name : Set compilers as environment variables
199222 run : |
@@ -232,15 +255,20 @@ jobs:
232255 - name : Upload compressed binaries
233256 uses : actions/upload-artifact@v4
234257 with :
235- name : ttk.tar.gz
258+ name : ttk-${{ matrix.os }} .tar.gz
236259 path : build/ttk.tar.gz
237260
238261 # -----------#
239262 # Test macOS #
240263 # -----------#
241264 test-macos :
242265 needs : build-macos
243- runs-on : macos-12
266+ runs-on : ${{ matrix.os }}
267+ strategy :
268+ matrix :
269+ os : [macos-12, macos-14]
270+ env :
271+ DYLD_LIBRARY_PATH : /usr/local/lib
244272 steps :
245273 - uses : actions/checkout@v4
246274 name : Checkout TTK source code
@@ -257,20 +285,26 @@ jobs:
257285 brew install --cask xquartz
258286 brew install llvm mesa glew qt@5 ninja
259287 # TTK dependencies
260- brew install boost eigen graphviz numpy websocketpp
288+ brew install boost eigen graphviz spectra sqlite zlib numpy qhull
261289
262290 - name : Fetch TTK-ParaView
263291 run : |
264- wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
292+ if [[ "${{ matrix.os }}" == "macos-12" ]]; then
293+ wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
294+ fi
295+ if [[ "${{ matrix.os }}" == "macos-14" ]]; then
296+ wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
297+ fi
298+
265299
266300 - name : Fetch TTK .tar.gz artifact
267301268302 with :
269- name : ttk.tar.gz
303+ name : ttk-${{ matrix.os }} .tar.gz
270304
271305 - name : Install binary archives packages
272306 run : |
273- tar xzf ttk-paraview-${{ env.PV_TAG}}-macos-12 .tar.gz
307+ tar xzf ttk-paraview.tar.gz
274308 sudo cp -r ttk-paraview/* /usr/local
275309 tar xzf ttk.tar.gz
276310 sudo cp -r ttk/* /usr/local
@@ -297,6 +331,18 @@ jobs:
297331 - name : Run ttk-data Python scripts
298332 run : |
299333 cd ttk-data
334+ # remove buggy example
335+ # related issue: https://github.com/topology-tool-kit/ttk/issues/1055
336+ rm python/nestedTrackingFromOverlap.py
337+ # remove examples which fill up the memory
338+ rm python/topologicalOptimization_darkSky.py
339+ # some cases fail only with version 12
340+ if [[ "${{ matrix.os }}" == "macos-12" ]]; then
341+ rm python/contourTreeAlignment.py
342+ rm python/geometryApproximation.py
343+ rm python/harmonicSkeleton.py
344+ rm python/topologicalOptimization_torus.py
345+ fi
300346 pvpython -u python/run.py
301347 env :
302348 PV_PLUGIN_PATH : /usr/local/bin/plugins/TopologyToolKit
@@ -315,6 +361,8 @@ jobs:
315361 build-windows :
316362 runs-on : windows-2022
317363 env :
364+ PV_DIR : C:\Program Files\TTK-ParaView
365+ TTK_DIR : C:\Program Files (x86)\ttk
318366 CONDA_ROOT : C:\Miniconda
319367 steps :
320368 - uses : actions/checkout@v4
@@ -325,8 +373,14 @@ jobs:
325373 - name : Install dependencies with conda
326374 shell : bash
327375 run : |
328- conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
329- scikit-learn llvm-openmp graphviz clangxx
376+ conda install -c conda-forge "qt>=5.12" \
377+ libboost-devel glew eigen spectralib zfp \
378+ sqlite scikit-learn graphviz ninja python=3.10 zlib qhull \
379+ llvm-openmp clangxx
380+ # add TTK & ParaView install folders to PATH
381+ echo "$PV_DIR/bin" >> $GITHUB_PATH
382+ echo "$TTK_DIR/bin" >> $GITHUB_PATH
383+ conda info --all
330384
331385 - name : Remove hosted Python
332386 shell : bash
@@ -349,10 +403,15 @@ jobs:
349403 - name : Create & configure TTK build directory
350404 shell : cmd
351405 run : |
352- set CMAKE_PREFIX_PATH=%CONDA_ROOT%\Library\lib\cmake;%CONDA_ROOT%\Library\share\eigen3\cmake;%CONDA_ROOT%\Library\cmake;%ProgramFiles%\TTK-ParaView\lib\cmake
406+ set CMAKE_PREFIX_PATH=%CONDA_ROOT%\Library\lib\cmake;%CONDA_ROOT%\Library\share\eigen3\cmake;%CONDA_ROOT%\Library\share\Qull\cmake;%CONDA_ROOT%\Library\cmake;%ProgramFiles%\TTK-ParaView\lib\cmake;
407+ set CC=clang-cl.exe
408+ set CXX=clang-cl.exe
409+ call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
353410 mkdir build
354411 cd build
355412 cmake ^
413+ -DCMAKE_BUILD_TYPE=Release ^
414+ -DCMAKE_POLICY_DEFAULT_CMP0074=NEW ^
356415 -DCMAKE_POLICY_DEFAULT_CMP0092=NEW ^
357416 -DBUILD_SHARED_LIBS:BOOL=TRUE ^
358417 -DCMAKE_INSTALL_PREFIX="%ProgramFiles%\TTK" ^
@@ -362,6 +421,8 @@ jobs:
362421 -DGraphviz_GVC_LIBRARY="%CONDA_ROOT%\Library\lib\gvc.lib" ^
363422 -DGraphviz_CGRAPH_LIBRARY="%CONDA_ROOT%\Library\lib\cgraph.lib" ^
364423 -DGraphviz_PATHPLAN_LIBRARY="%CONDA_ROOT%\Library\lib\pathplan.lib" ^
424+ -DZLIB_ROOT="%CONDA_ROOT%\Library" ^
425+ -DSQLite3_ROOT="%CONDA_ROOT%\Library" ^
365426 -DTTK_BUILD_PARAVIEW_PLUGINS=TRUE ^
366427 -DTTK_BUILD_VTK_WRAPPERS=TRUE ^
367428 -DTTK_BUILD_STANDALONE_APPS=TRUE ^
@@ -370,14 +431,19 @@ jobs:
370431 -DTTK_ENABLE_OPENMP=TRUE ^
371432 -DTTK_ENABLE_CPU_OPTIMIZATION=FALSE ^
372433 -DTTK_ENABLE_SHARED_BASE_LIBRARIES=TRUE ^
373- -G"Visual Studio 17 2022" ^
374- -Tclangcl ^
434+ -GNinja ^
375435 ..
376436
377- - name : Build TTK
437+ - name : Fix clang-cl OpenMP flags in build.ninja
378438 shell : bash
439+ run : |
440+ sed -i 's/-Xclang -fopenmp/-openmp/' build/build.ninja
441+
442+ - name : Build TTK
443+ shell : cmd
379444 run : |
380445 cd build
446+ call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
381447 cmake --build . --config Release --parallel
382448
383449 - name : Package TTK
@@ -411,8 +477,14 @@ jobs:
411477 - name : Install dependencies with conda
412478 shell : bash
413479 run : |
414- conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
415- scikit-learn openmp graphviz
480+ conda install -c conda-forge "qt>=5.12" \
481+ libboost-devel glew eigen spectralib zfp \
482+ sqlite scikit-learn graphviz ninja python=3.10 zlib qhull \
483+ llvm-openmp clangxx
484+ # add TTK & ParaView install folders to PATH
485+ echo "$PV_DIR/bin" >> $GITHUB_PATH
486+ echo "$TTK_DIR/bin" >> $GITHUB_PATH
487+ conda info --all
416488
417489 - name : Remove hosted Python
418490 shell : bash
@@ -443,24 +515,30 @@ jobs:
443515 - name : Test C++ example
444516 shell : cmd
445517 run : |
518+ set CC=clang-cl.exe
519+ set CXX=clang-cl.exe
520+ call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
446521 set CMAKE_PREFIX_PATH=%TTK_DIR%\lib\cmake;%PV_DIR%\lib\cmake
447522 cd %GITHUB_WORKSPACE%\examples\c++
448523 mkdir build
449524 cd build
450- cmake -G"Visual Studio 17 2022" -Tclangcl ..
525+ cmake -DCMAKE_BUILD_TYPE=Release -GNinja ..
451526 cmake --build . --config Release --parallel
452- Release\ ttkExample-c++.exe -i ..\..\data\inputData.off
527+ ttkExample-c++.exe -i ..\..\data\inputData.off
453528
454529 - name : Test VTK-C++ example
455530 shell : cmd
456531 run : |
532+ set CC=clang-cl.exe
533+ set CXX=clang-cl.exe
534+ call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
457535 set CMAKE_PREFIX_PATH=%TTK_DIR%\lib\cmake;%PV_DIR%\lib\cmake
458536 cd %GITHUB_WORKSPACE%\examples\vtk-c++
459537 mkdir build
460538 cd build
461- cmake -G"Visual Studio 17 2022" -Tclangcl ..
539+ cmake -DCMAKE_BUILD_TYPE=Release -GNinja ..
462540 cmake --build . --config Release --parallel
463- Release\ ttkExample-vtk-c++.exe -i ..\..\data\inputData.vtu
541+ ttkExample-vtk-c++.exe -i ..\..\data\inputData.vtu
464542
465543 - name : Test Python example [TEMPORARILY NOT ENFORCED]
466544 continue-on-error : true
@@ -505,6 +583,9 @@ jobs:
505583 set PYTHONPATH=%PV_DIR%\bin\Lib\site-packages;%TTK_DIR%\bin\Lib\site-packages;%CONDA_ROOT%\Lib;%CONDA_ROOT%\DLLs
506584 set PV_PLUGIN_PATH=%TTK_DIR%\bin\plugins
507585 cd ttk-data
586+ rm python/nestedTrackingFromOverlap.py
587+ # remove examples which fill up the memory
588+ rm python/topologicalOptimization_darkSky.py
508589 pvpython.exe -u python\run.py
509590
510591 - name : Test ttk-data Python scripts results [NOT ENFORCED]
@@ -570,13 +651,29 @@ jobs:
570651 file : ttk-ubuntu-22.04.deb/ttk.deb
571652 asset_name : ttk-$tag-ubuntu-22.04.deb
572653
573- - name : Upload macOS binary archives as Release Asset
654+ - name : Upload Ubuntu Noble Numbat .deb as Release Asset
655+ uses : svenstaro/upload-release-action@v2
656+ with :
657+ repo_token : ${{ secrets.GITHUB_TOKEN }}
658+ tag : ${{ github.ref }}
659+ file : ttk-ubuntu-24.04.deb/ttk.deb
660+ asset_name : ttk-$tag-ubuntu-24.04.deb
661+
662+ - name : Upload MacOS 12 binary archives as Release Asset
663+ uses : svenstaro/upload-release-action@v2
664+ with :
665+ repo_token : ${{ secrets.GITHUB_TOKEN }}
666+ tag : ${{ github.ref }}
667+ file : ttk-macos-12.tar.gz/ttk.tar.gz
668+ asset_name : ttk-$tag-macos-12.tar.gz
669+
670+ - name : Upload MacOS 14 binary archives as Release Asset
574671 uses : svenstaro/upload-release-action@v2
575672 with :
576673 repo_token : ${{ secrets.GITHUB_TOKEN }}
577674 tag : ${{ github.ref }}
578- file : ttk.tar.gz/ttk.tar.gz
579- asset_name : ttk-$tag.tar.gz
675+ file : ttk-macos-14 .tar.gz/ttk.tar.gz
676+ asset_name : ttk-$tag-macos-14-arm64 .tar.gz
580677
581678 - name : Upload Windows .exe as Release Asset
582679 uses : svenstaro/upload-release-action@v2
0 commit comments