diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-11-15 14:20:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-15 14:20:50 (GMT) |
commit | c779464bfe3dabd767144526a868a5b06538161f (patch) | |
tree | 24dbf660c97b36d8634ce2cd8440cb2b61e3bcb3 /.github/workflows/vol_ext_passthru.yml | |
parent | e807dee0fd6c007d7c41327c1ed0e8f5bc617f72 (diff) | |
download | hdf5-c779464bfe3dabd767144526a868a5b06538161f.zip hdf5-c779464bfe3dabd767144526a868a5b06538161f.tar.gz hdf5-c779464bfe3dabd767144526a868a5b06538161f.tar.bz2 |
Add GitHub actions for testing VOL connectors (#3849)
* Fix issue with HDF5_VOL_ALLOW_EXTERNAL CMake variable
* Add initial API test workflow
* Initialize parallel testing with MPI_THREAD_MULTIPLE when testing API
* Add CMake variable to allow specifying a VOL connector's package name
* Remove call to MPI_Init in serial API tests
While previously necessary, it now interferes with VOL connectors that
may need to be initialized with MPI_THREAD_MULTIPLE
Diffstat (limited to '.github/workflows/vol_ext_passthru.yml')
-rw-r--r-- | .github/workflows/vol_ext_passthru.yml | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/.github/workflows/vol_ext_passthru.yml b/.github/workflows/vol_ext_passthru.yml new file mode 100644 index 0000000..337130b --- /dev/null +++ b/.github/workflows/vol_ext_passthru.yml @@ -0,0 +1,64 @@ +name: Test HDF5 external pass-through VOL + +on: + workflow_call: + inputs: + build_mode: + description: "CMake Build type" + required: true + type: string + +permissions: + contents: read + +jobs: + build_and_test: + name: Test HDF5 external passthrough VOL connector + runs-on: ubuntu-latest + steps: + - name: Install dependencies + run: | + sudo apt update + sudo apt-get install automake autoconf libtool libtool-bin libopenmpi-dev + + - name: Checkout HDF5 + uses: actions/checkout@v4 + with: + repository: HDFGroup/hdf5 + path: hdf5 + + - name: Checkout vol-external-passthrough + uses: actions/checkout@v4 + with: + repository: hpc-io/vol-external-passthrough + path: vol-external-passthrough + + - name: Configure HDF5 with external passthrough VOL connector + shell: bash + run: | + mkdir ${{ github.workspace }}/hdf5/build + cd ${{ github.workspace }}/hdf5/build + cmake -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_TEST_API:BOOL=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF \ + -DHDF5_VOL_ALLOW_EXTERNAL:STRING="GIT" \ + -DHDF5_VOL_URL01:STRING="https://github.com/hpc-io/vol-external-passthrough.git" \ + -DHDF5_VOL_VOL-EXTERNAL-PASSTHROUGH_BRANCH:STRING="develop" \ + -DHDF5_VOL_VOL-EXTERNAL-PASSTHROUGH_NAME:STRING="pass_through_ext under_vol=0\;under_info={}\;" \ + -DHDF5_VOL_VOL-EXTERNAL-PASSTHROUGH_TEST_PARALLEL:BOOL=ON \ + ${{ github.workspace }}/hdf5 + cat src/libhdf5.settings + + - name: Build HDF5 and external passthrough VOL connector + shell: bash + working-directory: ${{ github.workspace }}/hdf5/build + run: | + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + + - name: Test HDF5 external passthrough VOL connector with HDF5 API tests + working-directory: ${{ github.workspace }}/hdf5/build + run: | + ctest --build-config ${{ inputs.build_mode }} -VV -R "HDF5_VOL_vol-external-passthrough" . |