forked from HDFGroup/hdf5
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adjust aocc workflow to fit the autotools/cmake pattern of other call…
…able workflows. (HDFGroup#4115)
- Loading branch information
Showing
7 changed files
with
213 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
name: hdf5 dev PAR autotools aocc ompi | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
build_mode: | ||
description: "release vs. debug build" | ||
required: true | ||
type: string | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
aocc_build_and_test: | ||
name: "aocc ${{ inputs.build_mode }}" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
|
||
- name: Install Linux dependencies | ||
shell: bash | ||
run: | | ||
sudo apt update | ||
sudo apt install -y autoconf automake libtool libtool-bin libaec-dev | ||
sudo apt install -y doxygen libncurses-dev libquadmath0 libstdc++6 libxml2 | ||
sudo apt install -y zlib1g-dev libcurl4-openssl-dev libjpeg-dev wget curl bzip2 | ||
sudo apt install -y m4 flex bison cmake libzip-dev openssl build-essential | ||
- name: Install AOCC 4.1.0 | ||
run: | | ||
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar | ||
tar -xvf aocc-compiler-4.1.0.tar | ||
cd aocc-compiler-4.1.0 | ||
bash install.sh | ||
source /home/runner/work/hdf5/hdf5/setenv_AOCC.sh | ||
which clang | ||
which flang | ||
clang -v | ||
- name: Cache OpenMPI 4.1.5 installation | ||
id: cache-openmpi-4_1_5 | ||
uses: actions/cache@v4 | ||
with: | ||
path: /home/runner/work/hdf5/hdf5/openmpi-4.1.5-install | ||
key: ${{ runner.os }}-${{ runner.arch }}-openmpi-4_1_5-cache | ||
|
||
- name: Install OpenMPI 4.1.5 | ||
if: ${{ steps.cache-openmpi-4_1_5.outputs.cache-hit != 'true' }} | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/usr/local/lib | ||
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz | ||
tar zxvf openmpi-4.1.5.tar.gz | ||
cd openmpi-4.1.5 | ||
./configure CC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/clang FC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/flang --prefix=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install | ||
make | ||
make install | ||
- name: Autotools Configure | ||
env: | ||
NPROCS: 2 | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib:/usr/local/lib | ||
export LD_RUN_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib:/usr/local/lib | ||
export PATH=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/bin:/usr/local/bin:$PATH | ||
sh ./autogen.sh | ||
mkdir "${{ runner.workspace }}/build" | ||
cd "${{ runner.workspace }}/build" | ||
CC=mpicc $GITHUB_WORKSPACE/configure \ | ||
--prefix=/tmp \ | ||
--enable-build-mode=${{ inputs.build_mode }} \ | ||
--enable-shared \ | ||
--enable-parallel \ | ||
LDFLAGS="-L/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib \ | ||
-L/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib" | ||
# BUILD | ||
- name: Autotools Build | ||
shell: bash | ||
env: | ||
NPROCS: 2 | ||
run: | | ||
export PATH=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/bin:/usr/local/bin:$PATH | ||
make -j3 | ||
working-directory: ${{ runner.workspace }}/build | ||
|
||
# RUN TESTS | ||
# NORMAL | ||
- name: Autotools Run Tests | ||
env: | ||
NPROCS: 2 | ||
run: | | ||
export PATH=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/bin:/usr/local/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 | ||
env: | ||
NPROCS: 2 | ||
run: | | ||
export PATH=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/bin:/usr/local/bin:$PATH | ||
make install | ||
working-directory: ${{ runner.workspace }}/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
name: hdf5 dev PAR CMake aocc ompi | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
build_mode: | ||
description: "release vs. debug build" | ||
required: true | ||
type: string | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
aocc_build_and_test: | ||
name: "aocc ${{ inputs.build_mode }}" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
|
||
- name: Install Linux dependencies | ||
shell: bash | ||
run: | | ||
sudo apt update | ||
sudo apt install -y libaec-dev ninja-build | ||
sudo apt install -y doxygen libncurses-dev libquadmath0 libstdc++6 libxml2 | ||
sudo apt install -y zlib1g-dev libcurl4-openssl-dev libjpeg-dev wget curl bzip2 | ||
sudo apt install -y m4 flex bison cmake libzip-dev openssl build-essential | ||
- name: Install AOCC 4.1.0 | ||
run: | | ||
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar | ||
tar -xvf aocc-compiler-4.1.0.tar | ||
cd aocc-compiler-4.1.0 | ||
bash install.sh | ||
source /home/runner/work/hdf5/hdf5/setenv_AOCC.sh | ||
which clang | ||
which flang | ||
clang -v | ||
- name: Cache OpenMPI 4.1.5 installation | ||
id: cache-openmpi-4_1_5 | ||
uses: actions/cache@v4 | ||
with: | ||
path: /home/runner/work/hdf5/hdf5/openmpi-4.1.5-install | ||
key: ${{ runner.os }}-${{ runner.arch }}-openmpi-4_1_5-cache | ||
|
||
- name: Install OpenMPI 4.1.5 | ||
if: ${{ steps.cache-openmpi-4_1_5.outputs.cache-hit != 'true' }} | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/usr/local/lib | ||
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz | ||
tar zxvf openmpi-4.1.5.tar.gz | ||
cd openmpi-4.1.5 | ||
./configure CC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/clang FC=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/bin/flang --prefix=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install | ||
make | ||
make install | ||
- name: CMake Configure with aocc | ||
shell: bash | ||
run: | | ||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib:/usr/local/lib | ||
export LD_RUN_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib:/usr/local/lib | ||
export PATH=/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/bin:/usr/local/bin:$PATH | ||
mkdir "${{ runner.workspace }}/build" | ||
cd "${{ runner.workspace }}/build" | ||
CC=mpicc cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja \ | ||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ | ||
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF \ | ||
-DHDF5_ENABLE_PARALLEL:BOOL=ON \ | ||
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \ | ||
-DLIBAEC_USE_LOCALCONTENT=OFF \ | ||
-DZLIB_USE_LOCALCONTENT=OFF \ | ||
-DHDF5_BUILD_FORTRAN:BOOL=OFF \ | ||
-DHDF5_BUILD_JAVA:BOOL=OFF \ | ||
-DMPIEXEC_MAX_NUMPROCS:STRING="2" \ | ||
$GITHUB_WORKSPACE | ||
#cat src/libhdf5.settings | ||
# BUILD | ||
- name: CMake Build | ||
shell: bash | ||
run: | | ||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }} | ||
working-directory: ${{ runner.workspace }}/build | ||
|
||
# RUN TESTS | ||
- name: CMake Run Tests | ||
shell: bash | ||
run: | | ||
ctest . --parallel 2 -C ${{ inputs.build_mode }} -V | ||
working-directory: ${{ runner.workspace }}/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
name: hdf5 1.14 PAR CMake CI | ||
|
||
# Controls when the action will run. Triggers the workflow on a call | ||
on: | ||
workflow_call: | ||
inputs: | ||
|
@@ -12,9 +11,6 @@ on: | |
permissions: | ||
contents: read | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or | ||
# in parallel. We just have one job, but the matrix items defined below will | ||
# run in parallel. | ||
jobs: | ||
# | ||
# The GitHub runners are inadequate for running parallel HDF5 tests, | ||
|
@@ -25,15 +21,10 @@ jobs: | |
# | ||
CMake_build_parallel: | ||
name: "Parallel GCC-${{ inputs.build_mode }}" | ||
# Don't run the action if the commit message says to skip CI | ||
if: ${{ inputs.thread_safety != 'TS' }} | ||
|
||
# The type of runner that the job will run on | ||
runs-on: ubuntu-latest | ||
|
||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
steps: | ||
# SETUP | ||
- uses: actions/[email protected] | ||
|
||
- name: Install Linux Dependencies | ||
run: | | ||
sudo apt update | ||
|
@@ -45,12 +36,8 @@ jobs: | |
echo "CC=mpicc" >> $GITHUB_ENV | ||
echo "FC=mpif90" >> $GITHUB_ENV | ||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | ||
- name: Get Sources | ||
uses: actions/[email protected] | ||
|
||
# CMAKE CONFIGURE | ||
- name: CMake Configure | ||
shell: bash | ||
run: | | ||
mkdir "${{ runner.workspace }}/build" | ||
cd "${{ runner.workspace }}/build" | ||
|
@@ -69,7 +56,6 @@ jobs: | |
-DHDF5_ENABLE_ROS3_VFD:BOOL=OFF \ | ||
-DHDF5_PACK_EXAMPLES:BOOL=ON \ | ||
$GITHUB_WORKSPACE | ||
shell: bash | ||
# BUILD | ||
- name: CMake Build | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters