Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add remaining CMake workflow versions of autotools workflows #4998

Merged
merged 4 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/cmake-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
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=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_Z_LIB_SUPPORT:BOOL=ON")
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,18 @@ jobs:
with:
build_mode: "Debug"

call-release-special-par:
name: "CMake Parallel Release Special Workflows"
uses: ./.github/workflows/main-cmake-par-spc.yml
with:
build_mode: "Release"

call-debug-special-par:
name: "CMake Parallel Debug Special Workflows"
uses: ./.github/workflows/main-cmake-par-spc.yml
with:
build_mode: "Debug"

call-release-cmake-intel:
name: "CMake Intel Workflows"
uses: ./.github/workflows/intel-cmake.yml
Expand Down
53 changes: 41 additions & 12 deletions .github/workflows/hdfeos5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,37 +15,66 @@ on:
- 'COPYING**'
- '**.md'

permissions:
contents: read

# Using concurrency to cancel any in-progress job or run
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
cancel-in-progress: true

permissions:
contents: read

jobs:
build:
name: Build hdfeos5
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Install System dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build
sudo apt install libssl3 libssl-dev libcurl4
sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl libtool libtool-bin

- name: Install Autotools Dependencies (Linux)
- name: Checkout HDF5
uses: actions/[email protected]

- name: CMake Configure
run: |
sudo apt update
sudo apt install automake autoconf libtool libtool-bin
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DHDF5_ENABLE_PARALLEL:BOOL=OFF \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN=OFF \
-DHDF5_BUILD_JAVA=OFF \
-DHDF5_BUILD_DOC=OFF \
-DLIBAEC_USE_LOCALCONTENT=OFF \
-DZLIB_USE_LOCALCONTENT=OFF \
-DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DDEFAULT_API_VERSION:STRING=v16 \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local \
$GITHUB_WORKSPACE
shell: bash

- name: CMake Build
run: cmake --build . --parallel 3 --config Release
working-directory: ${{ runner.workspace }}/build

- name: Install HDF5
run: |
./autogen.sh
./configure --prefix=/usr/local --disable-tests --with-default-api-version=v16
make
sudo make install
sudo cmake --install . --config Release --prefix="/usr/local"
working-directory: ${{ runner.workspace }}/build

- name: Install HDF-EOS5
run: |
wget -O HDF-EOS5.2.0.tar.gz "https://git.earthdata.nasa.gov/projects/DAS/repos/hdfeos5/raw/hdf-eos5-2.0-src.tar.gz?at=refs%2Fheads%2FHDFEOS5_2.0"
tar zxvf HDF-EOS5.2.0.tar.gz
cd hdf-eos5-2.0
./configure CC=/usr/local/bin/h5cc --prefix=/usr/local/ --enable-install-include
make
make check
LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}"
LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check
sudo make install
79 changes: 79 additions & 0 deletions .github/workflows/main-cmake-par-spc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: hdf5 dev parallel special CMake CI

on:
workflow_call:
inputs:
build_mode:
description: "release vs. debug build"
required: true
type: string

permissions:
contents: read

jobs:
#
# The GitHub runners are inadequate for running parallel HDF5 tests,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is no longer valid @byrnHDF / @derobins

# so we catch most issues in daily testing. What we have here is just
# a compile check to make sure nothing obvious is broken.
# A workflow that builds the library
# Parallel Linux (Ubuntu) w/ gcc + CMake
#
CMake_build_parallel_werror:
name: "Parallel GCC-${{ inputs.build_mode }}"
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]

- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
sudo apt install libaec0 libaec-dev
sudo apt install openmpi-bin openmpi-common mpi-default-dev
echo "CC=mpicc" >> $GITHUB_ENV
echo "FC=mpif90" >> $GITHUB_ENV

- name: CMake Configure
shell: bash
run: |
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
CC=mpicc cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
--log-level=VERBOSE \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DBUILD_SHARED_LIBS=ON \
-DHDF5_ENABLE_ALL_WARNINGS=ON \
-DHDF5_ENABLE_WARNINGS_AS_ERRORS=ON \
-DHDF5_ENABLE_PARALLEL:BOOL=ON \
-DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN=OFF \
-DHDF5_BUILD_JAVA=OFF \
-DLIBAEC_USE_LOCALCONTENT=OFF \
-DZLIB_USE_LOCALCONTENT=OFF \
-DHDF5_ENABLE_MIRROR_VFD:BOOL=OFF \
-DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
-DHDF5_ENABLE_ROS3_VFD:BOOL=OFF \
-DHDF5_PACK_EXAMPLES:BOOL=OFF \
$GITHUB_WORKSPACE

# BUILD
- name: CMake Build
run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
working-directory: ${{ runner.workspace }}/build

#
# RUN TESTS
#
- name: CMake Run Tests
run: ctest . -E MPI_TEST --parallel 2 -C ${{ inputs.build_mode }} -V
working-directory: ${{ runner.workspace }}/build
if: ${{ matrix.run_tests && (inputs.thread_safety != 'TS') }}

- name: CMake Run Parallel Tests
run: ctest . -R MPI_TEST -C ${{ inputs.build_mode }} -V
working-directory: ${{ runner.workspace }}/build
if: ${{ matrix.run_tests && (inputs.thread_safety != 'TS') }}
4 changes: 2 additions & 2 deletions .github/workflows/main-cmake-par.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: hdf5 dev PAR CMake CI
name: hdf5 dev parallel CMake CI

on:
workflow_call:
Expand All @@ -17,7 +17,7 @@ jobs:
# so we catch most issues in daily testing. What we have here is just
# a compile check to make sure nothing obvious is broken.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment here @byrnHDF / @derobins

# A workflow that builds the library
# Parallel Linux (Ubuntu) w/ gcc + Autotools
# Parallel Linux (Ubuntu) w/ gcc + CMake
#
CMake_build_parallel:
name: "Parallel GCC-${{ inputs.build_mode }}"
Expand Down
Loading
Loading