summaryrefslogtreecommitdiffstats
path: root/.github/workflows/nvhpc-auto.yml
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-10-18 22:47:17 (GMT)
committerGitHub <noreply@github.com>2023-10-18 22:47:17 (GMT)
commit1a898e792ee629afa20962a136dbb239f9c8e774 (patch)
treea4c302d5045c869dc209a660002efb45354a90b9 /.github/workflows/nvhpc-auto.yml
parent14a2c9eb12b11e6f297aa48edc7b47c485a99429 (diff)
downloadhdf5-1a898e792ee629afa20962a136dbb239f9c8e774.zip
hdf5-1a898e792ee629afa20962a136dbb239f9c8e774.tar.gz
hdf5-1a898e792ee629afa20962a136dbb239f9c8e774.tar.bz2
Add NV flags and update CI (#3711)
Diffstat (limited to '.github/workflows/nvhpc-auto.yml')
-rw-r--r--.github/workflows/nvhpc-auto.yml87
1 files changed, 87 insertions, 0 deletions
diff --git a/.github/workflows/nvhpc-auto.yml b/.github/workflows/nvhpc-auto.yml
new file mode 100644
index 0000000..ee96dfd
--- /dev/null
+++ b/.github/workflows/nvhpc-auto.yml
@@ -0,0 +1,87 @@
+name: hdf5 1.14 autotools nvhpc
+
+on:
+ workflow_call:
+ inputs:
+ build_mode:
+ description: "release vs. debug build"
+ required: true
+ type: string
+
+permissions:
+ contents: read
+
+jobs:
+ nvhpc_build_and_test:
+ name: "nvhpc ${{ inputs.build_mode }}"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install autoconf automake libtool libtool-bin libaec-dev
+ sudo apt-get install doxygen graphviz
+ sudo apt install -y zlib1g-dev libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openssl build-essential
+
+ - name: Install NVHPC
+ shell: bash
+ run: |
+ curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg
+ echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
+ sudo apt-get update -y
+ sudo apt-get install -y nvhpc-23-7
+ echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
+ echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
+ echo "NVHPCSDK=/opt/nvidia/hpc_sdk" >> $GITHUB_ENV
+ echo "OMPI_CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvc++" >> $GITHUB_ENV
+ echo "OMPI_CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvc" >> $GITHUB_ENV
+ echo "OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvfortran" >> $GITHUB_ENV
+ echo "LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/lib" >> $GITHUB_ENV
+ echo "DESTDIR=/tmp" >> $GITHUB_ENV
+
+ - name: Autotools Configure
+ shell: bash
+ run: |
+ export RUNPARALLEL="mpiexec -np 2"
+ export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
+ sh ./autogen.sh
+ mkdir "${{ runner.workspace }}/build"
+ cd "${{ runner.workspace }}/build"
+ $GITHUB_WORKSPACE/configure \
+ FCFLAGS="-fPIC -fortranlibs" \
+ --enable-build-mode=${{ inputs.build_mode }} \
+ --enable-fortran \
+ --enable-shared \
+ --enable-parallel
+ #cat config.log
+
+ # BUILD
+ - name: Autotools Build
+ shell: bash
+ run: |
+ export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
+ make -j3
+ working-directory: ${{ runner.workspace }}/build
+
+ # RUN TESTS
+ # NORMAL
+ - name: Autotools Run Tests
+ run: |
+ export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
+ make check -j
+ working-directory: ${{ runner.workspace }}/build
+
+ # INSTALL (note that this runs even when we don't run the tests)
+ - name: Autotools Install
+ run: |
+ export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
+ make install
+ working-directory: ${{ runner.workspace }}/build
+
+# - name: Autotools Verify Install
+# run: |
+# export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
+# make check-install
+# working-directory: ${{ runner.workspace }}/build