summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-12-22 21:17:05 (GMT)
committerGitHub <noreply@github.com>2023-12-22 21:17:05 (GMT)
commit366f2d94a3f5ee20287de8062a2a2c895e9eb856 (patch)
tree723c29f3a08b73b1e69bd824c392960e4bab3bd9 /.github
parent11e15aeed1b82201ea0805dcef5bfce3ac02b9cb (diff)
downloadhdf5-366f2d94a3f5ee20287de8062a2a2c895e9eb856.zip
hdf5-366f2d94a3f5ee20287de8062a2a2c895e9eb856.tar.gz
hdf5-366f2d94a3f5ee20287de8062a2a2c895e9eb856.tar.bz2
Add CMake api checks to test the new Examples folder. (#3907)
* Fix missing build-mode value * Use 110 version file only for the 1.10 library * Fix H5_LIBVER_DIR variable * Disable 1.6 API tests for now.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/cmake.yml4
-rw-r--r--.github/workflows/main-cmake-spc.yml264
2 files changed, 268 insertions, 0 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
index 84fe010..c22c753 100644
--- a/.github/workflows/cmake.yml
+++ b/.github/workflows/cmake.yml
@@ -11,6 +11,10 @@ permissions:
# in parallel. We just have one job, but the matrix items defined below will
# run in parallel.
jobs:
+ call-workflow-special-cmake:
+ name: "CMake Special Workflows"
+ uses: ./.github/workflows/main-cmake-spc.yml
+
call-debug-thread-cmake:
name: "CMake Debug Thread-Safety Workflows"
uses: ./.github/workflows/main-cmake.yml
diff --git a/.github/workflows/main-cmake-spc.yml b/.github/workflows/main-cmake-spc.yml
new file mode 100644
index 0000000..9531035
--- /dev/null
+++ b/.github/workflows/main-cmake-spc.yml
@@ -0,0 +1,264 @@
+name: hdf5 dev CMake special CI
+
+# Controls when the action will run. Triggers the workflow on a call
+on:
+ workflow_call:
+
+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:
+ #
+ # SPECIAL CMake BUILDS
+ #
+ # These are not built into the matrix and instead
+ # become NEW configs as their name would clobber one of the matrix
+ # names (so make sure the names are UNIQUE).
+ #
+
+ build_v1_6:
+ name: "gcc DBG v1.6 default API"
+ runs-on: ubuntu-latest
+ steps:
+ # SETUP
+ - name: Install Linux Dependencies
+ run: |
+ sudo apt 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
+ echo "CC=gcc-12" >> $GITHUB_ENV
+ echo "CXX=g++-12" >> $GITHUB_ENV
+ echo "FC=gfortran-12" >> $GITHUB_ENV
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v4.1.1
+
+ #
+ # CMAKE CONFIGURE
+ #
+ - name: CMake Configure
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ cd "${{ runner.workspace }}/build"
+ cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
+ -G Ninja \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_TOOLCHAIN_FILE=config/toolchain/gcc.cmake \
+ -DBUILD_SHARED_LIBS=ON \
+ -DHDF5_ENABLE_ALL_WARNINGS=ON \
+ -DHDF5_ENABLE_PARALLEL:BOOL=OFF \
+ -DHDF5_BUILD_CPP_LIB:BOOL=ON \
+ -DHDF5_BUILD_FORTRAN=ON \
+ -DHDF5_BUILD_JAVA=ON \
+ -DHDF5_BUILD_DOC=OFF \
+ -DLIBAEC_USE_LOCALCONTENT=OFF \
+ -DZLIB_USE_LOCALCONTENT=OFF \
+ -DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \
+ -DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
+ -DHDF5_ENABLE_ROS3_VFD:BOOL=ON \
+ -DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \
+ -DDEFAULT_API_VERSION:STRING=v16 \
+ $GITHUB_WORKSPACE
+ shell: bash
+
+ #
+ # BUILD
+ #
+ - name: CMake Build
+ run: cmake --build . --parallel 3 --config Debug
+ working-directory: ${{ runner.workspace }}/build
+
+ #
+ # RUN TESTS - disable until some tests are fixed
+ #
+# - name: CMake Run Tests
+# run: ctest . --parallel 2 -C Debug -V
+# working-directory: ${{ runner.workspace }}/build
+
+ build_v1_10:
+ name: "gcc DBG v1.10 default API (build only)"
+ runs-on: ubuntu-latest
+ steps:
+ # SETUP
+ - name: Install Linux Dependencies
+ run: |
+ sudo apt 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
+ echo "CC=gcc-12" >> $GITHUB_ENV
+ echo "CXX=g++-12" >> $GITHUB_ENV
+ echo "FC=gfortran-12" >> $GITHUB_ENV
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v4.1.1
+
+ #
+ # CMAKE CONFIGURE
+ #
+ - name: CMake Configure
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ cd "${{ runner.workspace }}/build"
+ cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
+ -G Ninja \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_TOOLCHAIN_FILE=config/toolchain/gcc.cmake \
+ -DBUILD_SHARED_LIBS=ON \
+ -DHDF5_ENABLE_ALL_WARNINGS=ON \
+ -DHDF5_ENABLE_PARALLEL:BOOL=OFF \
+ -DHDF5_BUILD_CPP_LIB:BOOL=ON \
+ -DHDF5_BUILD_FORTRAN=ON \
+ -DHDF5_BUILD_JAVA=ON \
+ -DHDF5_BUILD_DOC=OFF \
+ -DLIBAEC_USE_LOCALCONTENT=OFF \
+ -DZLIB_USE_LOCALCONTENT=OFF \
+ -DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \
+ -DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
+ -DHDF5_ENABLE_ROS3_VFD:BOOL=ON \
+ -DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \
+ -DDEFAULT_API_VERSION:STRING=v110 \
+ $GITHUB_WORKSPACE
+ shell: bash
+
+ #
+ # BUILD
+ #
+ - name: CMake Build
+ run: cmake --build . --parallel 3 --config Debug
+ working-directory: ${{ runner.workspace }}/build
+
+ #
+ # RUN TESTS
+ #
+ - name: CMake Run Tests
+ run: ctest . --parallel 2 -C Debug -V
+ working-directory: ${{ runner.workspace }}/build
+
+ build_v1_12:
+ name: "gcc DBG v1.12 default API (build only)"
+ runs-on: ubuntu-latest
+ steps:
+ # SETUP
+ - name: Install Linux Dependencies
+ run: |
+ sudo apt 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
+ echo "CC=gcc-12" >> $GITHUB_ENV
+ echo "CXX=g++-12" >> $GITHUB_ENV
+ echo "FC=gfortran-12" >> $GITHUB_ENV
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v4.1.1
+
+ #
+ # CMAKE CONFIGURE
+ #
+ - name: CMake Configure
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ cd "${{ runner.workspace }}/build"
+ cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
+ -G Ninja \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_TOOLCHAIN_FILE=config/toolchain/gcc.cmake \
+ -DBUILD_SHARED_LIBS=ON \
+ -DHDF5_ENABLE_ALL_WARNINGS=ON \
+ -DHDF5_ENABLE_PARALLEL:BOOL=OFF \
+ -DHDF5_BUILD_CPP_LIB:BOOL=ON \
+ -DHDF5_BUILD_FORTRAN=ON \
+ -DHDF5_BUILD_JAVA=ON \
+ -DHDF5_BUILD_DOC=OFF \
+ -DLIBAEC_USE_LOCALCONTENT=OFF \
+ -DZLIB_USE_LOCALCONTENT=OFF \
+ -DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \
+ -DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
+ -DHDF5_ENABLE_ROS3_VFD:BOOL=ON \
+ -DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \
+ -DDEFAULT_API_VERSION:STRING=v112 \
+ $GITHUB_WORKSPACE
+ shell: bash
+
+ #
+ # BUILD
+ #
+ - name: CMake Build
+ run: cmake --build . --parallel 3 --config Debug
+ working-directory: ${{ runner.workspace }}/build
+
+ #
+ # RUN TESTS
+ #
+ - name: CMake Run Tests
+ run: ctest . --parallel 2 -C Debug -V
+ working-directory: ${{ runner.workspace }}/build
+
+ build_v1_14:
+ name: "gcc DBG v1.14 default API (build only)"
+ runs-on: ubuntu-latest
+ steps:
+ # SETUP
+ - name: Install Linux Dependencies
+ run: |
+ sudo apt 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
+ echo "CC=gcc-12" >> $GITHUB_ENV
+ echo "CXX=g++-12" >> $GITHUB_ENV
+ echo "FC=gfortran-12" >> $GITHUB_ENV
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v4.1.1
+
+ #
+ # CMAKE CONFIGURE
+ #
+ - name: CMake Configure
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ cd "${{ runner.workspace }}/build"
+ cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
+ -G Ninja \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_TOOLCHAIN_FILE=config/toolchain/gcc.cmake \
+ -DBUILD_SHARED_LIBS=ON \
+ -DHDF5_ENABLE_ALL_WARNINGS=ON \
+ -DHDF5_ENABLE_PARALLEL:BOOL=OFF \
+ -DHDF5_BUILD_CPP_LIB:BOOL=ON \
+ -DHDF5_BUILD_FORTRAN=ON \
+ -DHDF5_BUILD_JAVA=ON \
+ -DHDF5_BUILD_DOC=OFF \
+ -DLIBAEC_USE_LOCALCONTENT=OFF \
+ -DZLIB_USE_LOCALCONTENT=OFF \
+ -DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \
+ -DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
+ -DHDF5_ENABLE_ROS3_VFD:BOOL=ON \
+ -DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \
+ -DDEFAULT_API_VERSION:STRING=v114 \
+ $GITHUB_WORKSPACE
+ shell: bash
+
+ #
+ # BUILD
+ #
+ - name: CMake Build
+ run: cmake --build . --parallel 3 --config Debug
+ working-directory: ${{ runner.workspace }}/build
+
+ #
+ # RUN TESTS
+ #
+ - name: CMake Run Tests
+ run: ctest . --parallel 2 -C Debug -V
+ working-directory: ${{ runner.workspace }}/build