name: hdf5 dev parallel from source CTest script 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 build_mode: description: "release vs. debug build" required: true type: string cmake_version: description: "3.26.0 or later" required: true type: string permissions: contents: read env: CTEST_OUTPUT_ON_FAILURE: 1 jobs: Build_openmpi_source: name: Build OpenMPI from source uses: ./.github/workflows/build_openmpi_source.yml with: build_mode: ${{ inputs.build_mode }} Build_mpich_source: name: Build MPICH from source uses: ./.github/workflows/build_mpich_source.yml with: build_mode: ${{ inputs.build_mode }} Build_parallel_src_openmpi: needs: Build_openmpi_source name: "Parallel OpenMPI GCC-${{ inputs.build_mode }}" runs-on: ubuntu-latest steps: - name: Get Actions uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: sparse-checkout: .github/actions - name: Install Linux Dependencies (OpenMPI) run: | sudo apt-get update sudo apt-get install ninja-build sudo apt install libaec0 libaec-dev - name: Get MPI installation (OpenMPI) uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: openmpi - name: Untar MPI installation (OpenMPI) run: | tar xvf openmpi.tar -C ${{ runner.workspace }} - name: Set path (OpenMPI) shell: bash run: | echo "${{ runner.workspace }}/openmpi/bin" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=${{ runner.workspace }}/openmpi/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV echo "CC=${{ runner.workspace }}/openmpi/bin/mpicc" >> $GITHUB_ENV echo "FC=${{ runner.workspace }}/openmpi/bin/mpif90" >> $GITHUB_ENV - name: Install CMake uses: lukka/get-cmake@fffaaafeea488556c2c12dad60690008bc1caacb # latest with: cmakeVersion: ${{ inputs.cmake_version }} ninjaVersion: latest - name: Set file base name (OpenMPI) 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 (OpenMPI) uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: tgz-tarball path: ${{ github.workspace }} - name: List files for the space (OpenMPI) run: | ls -l ${{ github.workspace }} ls ${{ runner.workspace }} - name: Uncompress source (OpenMPI) run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz - name: Symlink script files for the space (OpenMPI) uses: ./.github/actions/symlink-ctest-scripts with: source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }} - name: List files for the hdf5 (OpenMPI) run: | ls ${{ runner.workspace }}/hdf5 - name: Create options file (OpenMPI) uses: "DamianReeves/write-file-action@d4ee8a06aec5db0c57a036b86f2f428e1f8b00e7" # 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 (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5") set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}") set (ctest_test_args INCLUDE MPI_TEST) set (MODEL "MPI") set (GROUP "MPI") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DMPIEXEC_NUMPROC_FLAG:STRING=-n") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DMPIEXEC_MAX_NUMPROCS:STRING=2") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PARALLEL:BOOL=ON") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SUBFILING_VFD: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=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN: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_PLUGIN_SUPPORT:BOOL=ON") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_EXTERNAL:BOOL=ON") 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") - name: Run CTest script (OpenMPI) run: | cd "${{ runner.workspace }}/hdf5" ctest -S HDF5config.cmake,CTEST_SITE_EXT=GH-${{ github.event.repository.full_name }}-OpenMPI-source,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C ${{ inputs.build_mode }} -O hdf5.log shell: bash continue-on-error: true # Save log files created by CTest script - name: Save log (OpenMPI) uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v5 with: name: openmpi-log path: ${{ runner.workspace }}/hdf5/hdf5.log if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` Build_parallel_src_mpich: needs: Build_mpich_source name: "Parallel Mpich GCC-${{ inputs.build_mode }}" runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install Linux Dependencies (MPICH) run: | sudo apt-get update sudo apt-get install ninja-build sudo apt install libaec0 libaec-dev - name: Get MPI installation (MPICH) uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: mpich - name: Untar MPI installation (MPICH) run: | tar xvf mpich.tar -C ${{ runner.workspace }} - name: Set path (MPICH) shell: bash run: | echo "${{ runner.workspace }}/mpich/bin" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=${{ runner.workspace }}/mpich/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV echo "CC=${{ runner.workspace }}/mpich/bin/mpicc" >> $GITHUB_ENV echo "FC=${{ runner.workspace }}/mpich/bin/mpif90" >> $GITHUB_ENV - name: Install CMake uses: lukka/get-cmake@fffaaafeea488556c2c12dad60690008bc1caacb # latest with: cmakeVersion: ${{ inputs.cmake_version }} ninjaVersion: latest - name: Set file base name (MPICH) 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 (MPICH) uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: tgz-tarball path: ${{ github.workspace }} - name: List files for the space (MPICH) run: | ls -l ${{ github.workspace }} ls ${{ runner.workspace }} - name: Uncompress source (MPICH) run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz - name: Symlink script files for the space (MPICH) uses: ./.github/actions/symlink-ctest-scripts with: source-base: ${{ steps.set-file-base.outputs.SOURCE_BASE }} - name: List files for the hdf5 (MPICH) run: | ls ${{ runner.workspace }}/hdf5 - name: Create options file (MPICH) uses: "DamianReeves/write-file-action@d4ee8a06aec5db0c57a036b86f2f428e1f8b00e7" # 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 (CTEST_DROP_LOCATION_INIT "/submit.php?project=HDF5") set (SITE_BUILDNAME_SUFFIX "${{ steps.set-file-base.outputs.FILE_BASE }}") set (ctest_test_args INCLUDE MPI_TEST) set (MODEL "MPI") set (GROUP "MPI") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} --log-level=VERBOSE") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DMPIEXEC_NUMPROC_FLAG:STRING=-n") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DMPIEXEC_MAX_NUMPROCS:STRING=2") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PARALLEL:BOOL=ON") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SUBFILING_VFD: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=OFF") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN: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_PLUGIN_SUPPORT:BOOL=ON") set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DPLUGIN_USE_EXTERNAL:BOOL=ON") 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") - name: Run CTest script (MPICH) run: | cd "${{ runner.workspace }}/hdf5" ctest -S HDF5config.cmake,CTEST_SITE_EXT=GH-${{ github.event.repository.full_name }}-MPICH-source,LOCAL_SUBMIT=ON,NINJA=TRUE,BUILD_GENERATOR=Unix,CTEST_SOURCE_NAME=${{ steps.set-file-base.outputs.SOURCE_BASE }} -C ${{ inputs.build_mode }} -O hdf5.log shell: bash continue-on-error: true # Save log files created by CTest script - name: Save log (MPICH) uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v5 with: name: mpich-log path: ${{ runner.workspace }}/hdf5/hdf5.log if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`