1212 workflow_dispatch :
1313 inputs :
1414 type :
15- description : ' The type of CI to run (all, houdini, sanitize, mac, extra, ax, blosc)'
15+ description : ' The type of CI to run (all, houdini, sanitize, mac, extra, ax, blosc, abi )'
1616 required : true
1717 default : ' all'
1818
7575 cd $HOME/houdini_install/hou && source houdini_setup_bash && cd - &&
7676 ./ci/build.sh -v
7777 --build-type=Release
78- --components="core,hou,bin,python,test,axcore,axbin,axtest"
78+ --components="core,hou,bin,view,render, python,test,axcore,axbin,axtest"
7979 --cargs=\"-DDISABLE_CMAKE_SEARCH_PATHS=ON -DOPENVDB_BUILD_HOUDINI_ABITESTS=ON -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp\"
8080 - name : test
8181 run : cd build && ctest -V
@@ -122,7 +122,7 @@ jobs:
122122 cd $HOME/houdini_install/hou && source houdini_setup_bash && cd - &&
123123 ./ci/build.sh -v
124124 --build-type=Release
125- --components="core,hou,bin,python,test,axcore,axbin,axtest"
125+ --components="core,hou,bin,view,render, python,test,axcore,axbin,axtest"
126126 --cargs=\"-DDISABLE_CMAKE_SEARCH_PATHS=ON -DOPENVDB_BUILD_HOUDINI_ABITESTS=ON -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp\"
127127 - name : test
128128 run : cd build && ctest -V
@@ -210,7 +210,7 @@ jobs:
210210 run : >
211211 ./ci/build.sh -v
212212 --build-type=Release
213- --components=\"core,python,bin,test\"
213+ --components=\"core,python,bin,view,render, test\"
214214 --cargs=\"-DOPENVDB_CXX_STRICT=ON -DOPENVDB_ABI_VERSION_NUMBER=9 ${{ matrix.config.cmake }}\"
215215 - name : test
216216 run : cd build && ctest -V
@@ -245,7 +245,7 @@ jobs:
245245 ./ci/build.sh -v
246246 --build-type=Release
247247 -j ${{ matrix.config.j }}
248- --components=\"core,python,test,bin,axcore,axbin,axtest\"
248+ --components=\"core,python,test,bin,view,render, axcore,axbin,axtest\"
249249 --cargs=\"
250250 -DUSE_BLOSC=OFF
251251 -DCMAKE_CXX_STANDARD=17
@@ -277,7 +277,7 @@ jobs:
277277 run : >
278278 ./ci/build.sh -v
279279 --build-type=Release
280- --components=\"core,bin,test\"
280+ --components=\"core,bin,view,render, test\"
281281 --cargs=\"-DOPENVDB_CXX_STRICT=OFF -DUSE_BLOSC=OFF -DUSE_ZLIB=OFF\"
282282 - name : test
283283 shell : bash
@@ -310,7 +310,7 @@ jobs:
310310 run : >
311311 ./ci/build.sh -v
312312 --build-type=Release
313- --components=\"core,python,bin,test\"
313+ --components=\"core,python,bin,view,render, test\"
314314 --cargs=\"-DOPENVDB_CXX_STRICT=OFF -DOPENVDB_ABI_VERSION_NUMBER=9 -DOPENVDB_SIMD=SSE42\"
315315 - name : test
316316 shell : bash
@@ -336,8 +336,8 @@ jobs:
336336 matrix :
337337 config :
338338 # Unified
339- - { image: '2020-clang7', cxx: 'clang++', build: 'Release', j: '2', components: 'core,axcore,axbin,axtest' }
340- - { image: '2020-clang7', cxx: 'g++', build: 'Release', j: '1', components: 'core,axcore,axbin,axtest' }
339+ - { image: '2020-clang7', cxx: 'clang++', build: 'Release', j: '2', components: 'core,bin, axcore,axbin,axtest' }
340+ - { image: '2020-clang7', cxx: 'g++', build: 'Release', j: '1', components: 'core,bin, axcore,axbin,axtest' }
341341 # Standalone
342342 - { image: '2021-clang10', cxx: 'clang++', build: 'Release', j: '2', components: 'core' }
343343 - { image: '2022-clang11', cxx: 'clang++', build: 'Debug', j: '2', components: 'core' }
@@ -366,7 +366,7 @@ jobs:
366366 ./ci/build.sh -v
367367 -j ${{ matrix.config.j }}
368368 --build-type=${{ matrix.config.build }}
369- --components="axcore,axbin,axtest"
369+ --components="bin, axcore,axbin,axtest"
370370 --cargs=\"
371371 -DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON
372372 -DUSE_EXPLICIT_INSTANTIATION=OFF
@@ -401,7 +401,7 @@ jobs:
401401 run : >
402402 ./ci/build.sh -v
403403 --build-type=${{ matrix.config.build }}
404- --components="core,axcore,axbin,axtest"
404+ --components="core,bin, axcore,axbin,axtest"
405405 --cargs=\"
406406 -DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON
407407 -DUSE_EXPLICIT_INSTANTIATION=OFF
@@ -452,7 +452,7 @@ jobs:
452452 run : >
453453 ./ci/build.sh -v
454454 --config=${{ matrix.config.build }}
455- --components=\"core,axcore,axbin,axtest\"
455+ --components=\"core,bin, axcore,axbin,axtest\"
456456 --cargs=\'
457457 -A x64 -G \"Visual Studio 16 2019\"
458458 -DVCPKG_TARGET_TRIPLET=${VCPKG_DEFAULT_TRIPLET}
@@ -479,12 +479,12 @@ jobs:
479479 name : linux-blosc:${{ matrix.blosc }}
480480 strategy :
481481 matrix :
482- blosc : ['1.17.0','1.18.0'] # Need to fix unit tests for '1.19.0','1.20.0','1.21.0'
482+ blosc : ['1.17.0','1.18.0', '1.19.0','1.20.0','1.21.0']
483483 fail-fast : false
484484 steps :
485485 - uses : actions/checkout@v2
486486 - name : install_boost
487- run : sudo apt-get -q install -y libboost-dev libboost-system-dev libboost-iostreams-dev libboost-python-dev
487+ run : sudo apt-get -q install -y libboost-dev libboost-system-dev libboost-iostreams-dev
488488 - name : install_tbb
489489 run : sudo apt-get -q install -y libtbb-dev
490490 - name : install_gtest
@@ -500,3 +500,59 @@ jobs:
500500 - name : test
501501 run : cd build && sudo ctest -V
502502
503+ # ############################################################################
504+ # ################################# ABI ######################################
505+ # ############################################################################
506+
507+ linux-abi-checker :
508+ if : |
509+ github.event_name != 'workflow_dispatch' ||
510+ github.event.inputs.type == 'all' ||
511+ github.event.inputs.type == 'abi'
512+ # abi-dumper version verified to work with 20.04/GCC9
513+ runs-on : ubuntu-20.04
514+ steps :
515+ - uses : actions/checkout@v3
516+ with :
517+ fetch-depth : 0
518+ - name : install_deps
519+ run : sudo apt-get -q install -y libboost-dev libboost-system-dev libboost-iostreams-dev libtbb-dev libblosc-dev elfutils
520+ # abi-compliance-checker and abi-dumper
521+ #
522+ # @note that abi-dumper is available through apt but at the time of writing this
523+ # the version there (1.1) doesn't work correctly and maniftest by creating an
524+ # invalid ABI report with missing headers. This then always reports 100% success
525+ # rate when used with abi-compliance-checker.
526+ # To fix, install both from source and checkout specific commits for both
527+ # which have been verified to work on ubuntu 20.04.
528+ #
529+ # @warning If you update these, test that they fail when expected!
530+ #
531+ # Also note that these are far superior to abigail/abidiff tools from redhat
532+ - name : install_abi_checker
533+ run : |
534+ git clone https://github.com/lvc/abi-dumper.git abi-dumper
535+ cd abi-dumper && git checkout 16bb467cd7d343dd3a16782b151b56cf15509594 && cd -
536+ git clone https://github.com/lvc/abi-compliance-checker abi-compliance-checker
537+ cd abi-compliance-checker && git checkout 7c175c45a8ba9ac41b8e47d8ebbab557b623b18e && cd -
538+ - name : build_latest
539+ run : |
540+ CXXFLAGS=-Og ./ci/build.sh --build-dir=build_latest -v --build-type=Debug --target=openvdb_shared --components=\"core\" --cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
541+ - name : build_9
542+ run : |
543+ git checkout v9.0.0
544+ CXXFLAGS=-Og ./ci/build.sh -v --build-type=Debug --target=openvdb_shared --components=\"core\" --cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
545+ - name : abi_check
546+ # -strict treats warnings as errors
547+ run : |
548+ abi-dumper/abi-dumper.pl build_latest/openvdb/openvdb/libopenvdb.so -o ABI-1.dump -lver 1
549+ abi-dumper/abi-dumper.pl build/openvdb/openvdb/libopenvdb.so -o ABI-2.dump -lver 2
550+ abi-compliance-checker/abi-compliance-checker.pl -l OPENVDB -old ABI-2.dump -new ABI-1.dump -strict
551+ - name : upload_report
552+ uses : actions/upload-artifact@v3
553+ if : always()
554+ with :
555+ name : abi_report
556+ path : ./compat_reports/OPENVDB/2_to_1/compat_report.html
557+ retention-days : 5
558+
0 commit comments