Skip to content

Extension buildsystem: sandbox all steps

Created by: jcfr

This topic updates the extension build system so that a failure in any of the extension download/configure/build/test/packaging steps do not cause the entire build to fail.

See https://discourse.slicer.org/t/no-nightly-mac-binary-since-august-1/836/10?u=jcfr

Fixes #4247

The corresponding tests have also been updated to include an extension with source failing to be checked out. In that case, download error will be reported as configure error and the other extensions will still be built.

$ ctest -R "extension" 
Test project /home/jcfr/Projects/Slicer-2-build/Slicer-build
    Start  3: cmake_slicer_extension_description_spec_defaults_test
1/8 Test  #3: cmake_slicer_extension_description_spec_defaults_test ...............   Passed    0.00 sec
    Start  4: cmake_slicer_extension_metadata_set_defaults_test
2/8 Test  #4: cmake_slicer_extension_metadata_set_defaults_test ...................   Passed    0.00 sec
    Start  5: cmake_slicer_extract_extension_description_test
3/8 Test  #5: cmake_slicer_extract_extension_description_test .....................   Passed    0.01 sec
    Start  6: cmake_slicer_generate_extension_description_test
4/8 Test  #6: cmake_slicer_generate_extension_description_test ....................   Passed    0.01 sec
    Start  7: py_cmake_slicer_extensions_index_build_without_upload
5/8 Test  #7: py_cmake_slicer_extensions_index_build_without_upload ...............   Passed   34.09 sec
    Start  8: py_cmake_slicer_extensions_index_build_with_upload
6/8 Test  #8: py_cmake_slicer_extensions_index_build_with_upload ..................   Passed   35.14 sec
    Start  9: py_cmake_slicer_extensions_index_build_with_upload_using_ctest
7/8 Test  #9: py_cmake_slicer_extensions_index_build_with_upload_using_ctest ......   Passed   34.81 sec
    Start 10: py_cmake_slicer_extensions_index_build_without_upload_using_ctest
8/8 Test #10: py_cmake_slicer_extensions_index_build_without_upload_using_ctest ...   Passed   34.24 sec

100% tests passed, 0 tests failed out of 8

Label Time Summary:
CMake    = 138.30 sec (8 tests)

Total Test time (real) = 138.35 sec

Merge request reports