mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Addresses the "multiple @ param documentation sections" warnings are caused by the interaction of three things:
1. MACRO_EXPANSION = YES with EXPAND_ONLY_PREDEF = NO in Doxyfile.in
2. Versioned API macros in H5version.h like:
\def documentation in APIVersions.dox like:
3. \def H5Tarray_create \api_vers_2{H5Tarray_create,H5Tarray_create1,H5Tarray_create2}
Because Doxygen expands all macros, it sees H5Tarray_create as an alias for H5Tarray_create1. It then associates documentation from both the \def block (for the macro) and the function's own doc block (with \param entries) with the same function — resulting in "multiple @ param documentation sections."
* Update Doxygen version from 1.16.0 to 1.16.1
Use Doxygen 1.16.1 for all platforms. This version includes the latest
bug fixes and improvements while maintaining compatibility with our
documentation format.
* Fix Windows Doxygen installation for version 1.16.1
Handle different Windows binary naming conventions across Doxygen versions:
- 1.16.1 uses: doxygen-VERSION.windows.x64.bin.zip
- 1.16.0 uses: doxygen-VERSION.x64.bin.zip
Try the newer naming convention first, then fall back to the older one
if the download fails. This ensures compatibility across versions.
* Use ssciwr/doxygen-install in setup-doxygen action
Replace direct installation of official Doxygen binaries with
ssciwr/doxygen-install action. This avoids Java documentation parsing
errors that occur with official binaries but not with distribution
builds.
The setup-doxygen action now serves as a thin wrapper around
ssciwr/doxygen-install@f13be16c83 (v1),
using commit hash for security and reproducibility.
* Remove redundant version specification from workflows
The setup-doxygen action already has a default version (1.16.1),
so explicit version specification in workflows is unnecessary.
This follows DRY principles and makes version updates simpler.
444 lines
20 KiB
YAML
444 lines
20 KiB
YAML
name: hdf5 dev CTest analysis runs
|
|
|
|
# Triggers the workflow on a call from another workflow
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
snap_name:
|
|
description: 'The name in the source tarballs'
|
|
type: string
|
|
required: false
|
|
default: hdfsrc
|
|
file_base:
|
|
description: "The common base name of the source tarballs"
|
|
required: true
|
|
type: string
|
|
use_environ:
|
|
description: 'Environment to locate files'
|
|
type: string
|
|
required: true
|
|
default: snapshots
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CTEST_OUTPUT_ON_FAILURE: 1
|
|
|
|
jobs:
|
|
coverage_test_linux_GCC:
|
|
# Linux (Ubuntu) w/ gcc + coverage
|
|
#
|
|
name: "Ubuntu GCC Coverage"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get Actions
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
sparse-checkout: .github/actions
|
|
|
|
- name: Setup Doxygen
|
|
uses: ./.github/actions/setup-doxygen
|
|
|
|
- name: Install Dependencies (Linux_coverage)
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install ninja-build graphviz curl build-essential
|
|
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
|
sudo apt-get install lcov -q -y
|
|
|
|
- name: Set file base name (Linux_coverage)
|
|
id: set-file-base
|
|
run: |
|
|
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
|
|
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
if [[ '${{ inputs.use_environ }}' == 'release' ]]
|
|
then
|
|
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
|
|
else
|
|
SOURCE_NAME_BASE=$(echo "hdfsrc")
|
|
fi
|
|
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
|
|
# Get files created by release script
|
|
- name: Get tgz-tarball (Linux_coverage)
|
|
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
with:
|
|
name: tgz-tarball
|
|
path: ${{ github.workspace }}
|
|
|
|
- name: List files for the space (Linux_coverage)
|
|
run: |
|
|
ls -l ${{ github.workspace }}
|
|
ls ${{ runner.workspace }}
|
|
|
|
- name: Uncompress source (Linux_coverage)
|
|
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
|
|
|
|
- name: Symlink script files for the space (Linux_coverage)
|
|
uses: ./.github/actions/symlink-ctest-scripts
|
|
with:
|
|
source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }}
|
|
|
|
- name: List files for the hdf5 (Linux_coverage)
|
|
run: |
|
|
ls ${{ runner.workspace }}/hdf5
|
|
|
|
- name: Create options file (Linux_coverage)
|
|
uses: "DamianReeves/write-file-action@1d019960841941be46b139298996df6f139cc7a4" # master
|
|
with:
|
|
path: ${{ runner.workspace }}/hdf5/HDF5options.cmake
|
|
write-mode: overwrite
|
|
contents: |
|
|
set (CTEST_DROP_SITE_INIT "my.cdash.org")
|
|
# Change following line to submit to your CDash dashboard to a different CDash project
|
|
set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}")
|
|
#set (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5")
|
|
set (LOCAL_COVERAGE_TEST "TRUE")
|
|
set (LOCAL_USE_GCOV "TRUE")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_STATIC_LIBS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_COVERAGE:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCODE_COVERAGE:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLIBAEC_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACK_EXAMPLES:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")
|
|
|
|
- name: Run CTest (Linux_coverage)
|
|
run: |
|
|
cd "${{ runner.workspace }}/hdf5"
|
|
ctest -S HDF5config.cmake,CTEST_SITE_EXT=${{ github.event.repository.full_name }}_COV,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C Debug -O hdf5.log
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
# Save log files created by CTest script
|
|
- name: Save log (Linux_coverage)
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
|
|
with:
|
|
name: clang-coverage-log
|
|
path: ${{ runner.workspace }}/hdf5/hdf5.log
|
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
|
|
|
build_and_test_linux_LeakSanitizer:
|
|
# Linux (Ubuntu) w/ clang + LeakSanitizer
|
|
#
|
|
name: "Ubuntu Clang LeakSanitizer"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get Actions
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
sparse-checkout: .github/actions
|
|
|
|
- name: Setup Doxygen
|
|
uses: ./.github/actions/setup-doxygen
|
|
|
|
- name: Install Dependencies (Linux_Leak)
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install ninja-build graphviz curl
|
|
|
|
- name: Set file base name (Linux_Leak)
|
|
id: set-file-base
|
|
run: |
|
|
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
|
|
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
if [[ '${{ inputs.use_environ }}' == 'release' ]]
|
|
then
|
|
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
|
|
else
|
|
SOURCE_NAME_BASE=$(echo "hdfsrc")
|
|
fi
|
|
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
|
|
# Get files created by release script
|
|
- name: Get tgz-tarball (Linux_Leak)
|
|
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
with:
|
|
name: tgz-tarball
|
|
path: ${{ github.workspace }}
|
|
|
|
- name: List files for the space (Linux_Leak)
|
|
run: |
|
|
ls -l ${{ github.workspace }}
|
|
ls ${{ runner.workspace }}
|
|
|
|
- name: Uncompress source (Linux_Leak)
|
|
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
|
|
|
|
- name: Symlink script files for the space (Linux_Leak)
|
|
uses: ./.github/actions/symlink-ctest-scripts
|
|
with:
|
|
source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }}
|
|
|
|
- name: List files for the hdf5 (Linux_Leak)
|
|
run: |
|
|
ls ${{ runner.workspace }}/hdf5
|
|
|
|
- name: Create options file (Linux_Leak)
|
|
uses: "DamianReeves/write-file-action@1d019960841941be46b139298996df6f139cc7a4" # master
|
|
with:
|
|
path: ${{ runner.workspace }}/hdf5/HDF5options.cmake
|
|
write-mode: overwrite
|
|
contents: |
|
|
set (CTEST_DROP_SITE_INIT "my.cdash.org")
|
|
# Change following line to submit to your CDash dashboard to a different CDash project
|
|
set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}")
|
|
#set (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (MODEL "Sanitize")
|
|
set (GROUP "Sanitize")
|
|
set (LOCAL_MEMCHECK_TEST "TRUE")
|
|
set (CTEST_MEMORYCHECK_TYPE "LeakSanitizer")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_STATIC_LIBS:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SANITIZERS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_USE_SANITIZER:STRING=Leak")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLIBAEC_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_C_COMPILER:STRING=clang")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_CXX_COMPILER:STRING=clang++")
|
|
|
|
- name: Run CTest (Linux_Leak)
|
|
run: |
|
|
cd "${{ runner.workspace }}/hdf5"
|
|
ctest -S HDF5config.cmake,CTEST_SITE_EXT=${{ github.event.repository.full_name }}-LEAK,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C Debug -O hdf5.log
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
# Save log files created by CTest script
|
|
- name: Save log (Linux_Leak)
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
|
|
with:
|
|
name: leak-ubuntu-log
|
|
path: ${{ runner.workspace }}/hdf5/hdf5.log
|
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
|
|
|
build_and_test_linux_AddressSanitizer:
|
|
# Linux (Ubuntu) w/ clang + AddressSanitizer
|
|
#
|
|
name: "Ubuntu Clang AddressSanitizer"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get Actions
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
sparse-checkout: .github/actions
|
|
|
|
- name: Setup Doxygen
|
|
uses: ./.github/actions/setup-doxygen
|
|
|
|
- name: Install Dependencies (Linux_Address)
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install ninja-build graphviz curl
|
|
|
|
- name: Set file base name (Linux_Address)
|
|
id: set-file-base
|
|
run: |
|
|
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
|
|
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
if [[ '${{ inputs.use_environ }}' == 'release' ]]
|
|
then
|
|
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
|
|
else
|
|
SOURCE_NAME_BASE=$(echo "hdfsrc")
|
|
fi
|
|
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
|
|
# Get files created by release script
|
|
- name: Get tgz-tarball (Linux_Address)
|
|
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
with:
|
|
name: tgz-tarball
|
|
path: ${{ github.workspace }}
|
|
|
|
- name: List files for the space (Linux_Address)
|
|
run: |
|
|
ls -l ${{ github.workspace }}
|
|
ls ${{ runner.workspace }}
|
|
|
|
- name: Uncompress source (Linux_Address)
|
|
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
|
|
|
|
- name: Symlink script files for the space (Linux_Address)
|
|
uses: ./.github/actions/symlink-ctest-scripts
|
|
with:
|
|
source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }}
|
|
|
|
- name: List files for the hdf5 (Linux_Address)
|
|
run: |
|
|
ls ${{ runner.workspace }}/hdf5
|
|
|
|
- name: Create options file (Linux_Address)
|
|
uses: "DamianReeves/write-file-action@1d019960841941be46b139298996df6f139cc7a4" # master
|
|
with:
|
|
path: ${{ runner.workspace }}/hdf5/HDF5options.cmake
|
|
write-mode: overwrite
|
|
contents: |
|
|
set (CTEST_DROP_SITE_INIT "my.cdash.org")
|
|
# Change following line to submit to your CDash dashboard to a different CDash project
|
|
set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}")
|
|
#set (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (MODEL "Sanitize")
|
|
set (GROUP "Sanitize")
|
|
set (LOCAL_MEMCHECK_TEST "TRUE")
|
|
set (CTEST_MEMORYCHECK_TYPE "AddressSanitizer")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_STATIC_LIBS:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SANITIZERS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_USE_SANITIZER:STRING=Address")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLIBAEC_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_C_COMPILER:STRING=clang")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_CXX_COMPILER:STRING=clang++")
|
|
|
|
- name: Run CTest (Linux_Address)
|
|
run: |
|
|
cd "${{ runner.workspace }}/hdf5"
|
|
ctest -S HDF5config.cmake,CTEST_SITE_EXT=${{ github.event.repository.full_name }}-ADDR,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C Debug -O hdf5.log
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
# Save log files created by CTest script
|
|
- name: Save log (Linux_Address)
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
|
|
with:
|
|
name: address-ubuntu-log
|
|
path: ${{ runner.workspace }}/hdf5/hdf5.log
|
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
|
|
|
build_and_test_linux_UndefinedBehaviorSanitizer:
|
|
# Linux (Ubuntu) w/ clang + UndefinedBehaviorSanitizer
|
|
#
|
|
name: "Ubuntu Clang UndefinedBehaviorSanitizer"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get Actions
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
with:
|
|
sparse-checkout: .github/actions
|
|
|
|
- name: Setup Doxygen
|
|
uses: ./.github/actions/setup-doxygen
|
|
|
|
- name: Install Dependencies (Linux_UndefinedBehavior)
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install ninja-build graphviz curl
|
|
|
|
- name: Set file base name (Linux_UndefinedBehavior)
|
|
id: set-file-base
|
|
run: |
|
|
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
|
|
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
if [[ '${{ inputs.use_environ }}' == 'release' ]]
|
|
then
|
|
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
|
|
else
|
|
SOURCE_NAME_BASE=$(echo "hdfsrc")
|
|
fi
|
|
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
|
|
|
|
# Get files created by release script
|
|
- name: Get tgz-tarball (Linux_UndefinedBehavior)
|
|
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
|
with:
|
|
name: tgz-tarball
|
|
path: ${{ github.workspace }}
|
|
|
|
- name: List files for the space (Linux_UndefinedBehavior)
|
|
run: |
|
|
ls -l ${{ github.workspace }}
|
|
ls ${{ runner.workspace }}
|
|
|
|
- name: Uncompress source (Linux_UndefinedBehavior)
|
|
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
|
|
|
|
- name: Symlink script files for the space (Linux_UndefinedBehavior)
|
|
uses: ./.github/actions/symlink-ctest-scripts
|
|
with:
|
|
source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }}
|
|
|
|
- name: List files for the hdf5 (Linux_UndefinedBehavior)
|
|
run: |
|
|
ls ${{ runner.workspace }}/hdf5
|
|
|
|
- name: Create options file (Linux_UndefinedBehavior)
|
|
uses: "DamianReeves/write-file-action@1d019960841941be46b139298996df6f139cc7a4" # master
|
|
with:
|
|
path: ${{ runner.workspace }}/hdf5/HDF5options.cmake
|
|
write-mode: overwrite
|
|
contents: |
|
|
set (CTEST_DROP_SITE_INIT "my.cdash.org")
|
|
# Change following line to submit to your CDash dashboard to a different CDash project
|
|
set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}")
|
|
#set (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (MODEL "Sanitize")
|
|
set (GROUP "Sanitize")
|
|
set (LOCAL_MEMCHECK_TEST "TRUE")
|
|
set (CTEST_MEMORYCHECK_TYPE "UndefinedBehaviorSanitizer")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_STATIC_LIBS:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SANITIZERS:BOOL=ON")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_USE_SANITIZER:STRING=Undefined")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLIBAEC_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_LOCALCONTENT:BOOL=OFF")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_C_COMPILER:STRING=clang")
|
|
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_CXX_COMPILER:STRING=clang++")
|
|
|
|
- name: Run CTest (Linux_UndefinedBehavior)
|
|
run: |
|
|
cd "${{ runner.workspace }}/hdf5"
|
|
ctest -S HDF5config.cmake,CTEST_SITE_EXT=${{ github.event.repository.full_name }}-UNDEF,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C Debug -O hdf5.log
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
# Save log files created by CTest script
|
|
- name: Save log (Linux_UndefinedBehavior)
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
|
|
with:
|
|
name: undefined-ubuntu-log
|
|
path: ${{ runner.workspace }}/hdf5/hdf5.log
|
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|