summaryrefslogtreecommitdiffstats
path: root/.github/workflows/cmake-ctest.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/cmake-ctest.yml')
-rw-r--r--.github/workflows/cmake-ctest.yml126
1 files changed, 105 insertions, 21 deletions
diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml
index b4302cc..54642a4 100644
--- a/.github/workflows/cmake-ctest.yml
+++ b/.github/workflows/cmake-ctest.yml
@@ -8,6 +8,10 @@ on:
description: "The common base name of the source tarballs"
required: true
type: string
+ preset_name:
+ description: "The common base name of the preset configuration name to control the build"
+ required: true
+ type: string
permissions:
contents: read
@@ -24,6 +28,11 @@ jobs:
- name: Install Dependencies (Windows)
run: choco install ninja
+ - name: Install Dependencies
+ uses: ssciwr/doxygen-install@v1
+ with:
+ version: "1.10.0"
+
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1.13.0
@@ -36,7 +45,7 @@ jobs:
# Get files created by release script
- name: Get zip-tarball (Windows)
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
name: zip-tarball
path: ${{ github.workspace }}
@@ -59,7 +68,7 @@ jobs:
- name: Run ctest (Windows)
run: |
cd "${{ runner.workspace }}/hdf5/hdfsrc"
- cmake --workflow --preset=ci-StdShar-MSVC --fresh
+ cmake --workflow --preset=${{ inputs.preset_name }}-MSVC --fresh
shell: bash
- name: Publish binary (Windows)
@@ -83,7 +92,7 @@ jobs:
# Save files created by ctest script
- name: Save published binary (Windows)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: zip-vs2022_cl-binary
path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip
@@ -96,7 +105,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install CMake Dependencies (Linux)
- run: sudo apt-get install ninja-build doxygen graphviz
+ run: sudo apt-get install ninja-build graphviz
+
+ - name: Install Dependencies
+ uses: ssciwr/doxygen-install@v1
+ with:
+ version: "1.10.0"
- name: Set file base name (Linux)
id: set-file-base
@@ -106,7 +120,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (Linux)
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -122,7 +136,7 @@ jobs:
- name: Run ctest (Linux)
run: |
cd "${{ runner.workspace }}/hdf5/hdfsrc"
- cmake --workflow --preset=ci-StdShar-GNUC --fresh
+ cmake --workflow --preset=${{ inputs.preset_name }}-GNUC --fresh
shell: bash
- name: Publish binary (Linux)
@@ -145,7 +159,7 @@ jobs:
# Save files created by ctest script
- name: Save published binary (Linux)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: tgz-ubuntu-2204_gcc-binary
path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz
@@ -153,7 +167,7 @@ jobs:
# Save doxygen files created by ctest script
- name: Save published doxygen (Linux)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: docs-doxygen
path: ${{ runner.workspace }}/hdf5/build114/ci-StdShar-GNUC/hdf5lib_docs/html
@@ -163,10 +177,15 @@ jobs:
# MacOS w/ Clang + CMake
#
name: "MacOS Clang CMake"
- runs-on: macos-11
+ runs-on: macos-13
steps:
- name: Install Dependencies (MacOS)
- run: brew install ninja doxygen
+ run: brew install ninja
+
+ - name: Install Dependencies
+ uses: ssciwr/doxygen-install@v1
+ with:
+ version: "1.10.0"
- name: Set file base name (MacOS)
id: set-file-base
@@ -176,7 +195,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (MacOS)
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -201,12 +220,13 @@ jobs:
id: run-ctest
run: |
cd "${{ runner.workspace }}/hdf5/hdfsrc"
- cmake --workflow --preset=ci-StdShar-Clang --fresh
+ cmake --workflow --preset=${{ inputs.preset_name }}-OSX-Clang --fresh
shell: bash
- name: Publish binary (MacOS)
id: publish-ctest-binary
run: |
+
mkdir "${{ runner.workspace }}/build114"
mkdir "${{ runner.workspace }}/build114/hdf5"
cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build114/hdf5
@@ -224,12 +244,76 @@ jobs:
# Save files created by ctest script
- name: Save published binary (MacOS)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: tgz-osx12-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-osx12.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+ build_and_test_S3_linux:
+ # Linux S3 (Ubuntu) w/ gcc + CMake
+ #
+ name: "Ubuntu gcc CMake S3"
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install CMake Dependencies (Linux S3)
+ run: |
+ sudo apt-get install ninja-build doxygen graphviz
+ sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
+
+ - name: Set file base name (Linux S3)
+ id: set-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+
+ # Get files created by release script
+ - name: Get tgz-tarball (Linux S3)
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ with:
+ name: tgz-tarball
+ path: ${{ github.workspace }}
+
+ - name: List files for the space (Linux S3)
+ run: |
+ ls -l ${{ github.workspace }}
+ ls ${{ runner.workspace }}
+
+ - name: Uncompress source (Linux S3)
+ run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
+
+ - name: Run ctest (Linux S3)
+ run: |
+ cd "${{ runner.workspace }}/hdf5/hdfsrc"
+ cmake --workflow --preset=${{ inputs.preset_name }}-GNUC-S3 --fresh
+ shell: bash
+
+ - name: Publish binary (Linux S3)
+ id: publish-ctest-binary
+ run: |
+ mkdir "${{ runner.workspace }}/build114"
+ mkdir "${{ runner.workspace }}/build114/hdf5"
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build114/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build114/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5114
+ cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC-S3/*.tar.gz ${{ runner.workspace }}/build114/hdf5
+ cd "${{ runner.workspace }}/build114"
+ tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc_s3.tar.gz hdf5
+ shell: bash
+
+ - name: List files in the space (Linux S3)
+ run: |
+ ls ${{ github.workspace }}
+ ls -l ${{ runner.workspace }}
+
+ # Save files created by ctest script
+ - name: Save published binary (Linux S3)
+ uses: actions/upload-artifact@v4
+ with:
+ name: tgz-ubuntu-2204_gcc_s3-binary
+ path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc_s3.tar.gz
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
####### intel builds
build_and_test_win_intel:
# Windows w/ OneAPI + CMake
@@ -259,7 +343,7 @@ jobs:
# Get files created by release script
- name: Get zip-tarball (Windows_intel)
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
name: zip-tarball
path: ${{ github.workspace }}
@@ -286,7 +370,7 @@ jobs:
CXX: ${{ steps.setup-fortran.outputs.cxx }}
run: |
cd "${{ runner.workspace }}/hdf5/hdfsrc"
- cmake --workflow --preset=ci-StdShar-Intel --fresh
+ cmake --workflow --preset=${{ inputs.preset_name }}-win-Intel --fresh
shell: pwsh
- name: Publish binary (Windows_intel)
@@ -297,7 +381,7 @@ jobs:
Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING -Destination ${{ runner.workspace }}/build/hdf5/
Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/build/hdf5/
Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/README.md -Destination ${{ runner.workspace }}/build/hdf5/
- Copy-Item -Path ${{ runner.workspace }}/hdf5/build/ci-StdShar-Intel/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
+ Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
cd "${{ runner.workspace }}/build"
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip hdf5
shell: pwsh
@@ -310,7 +394,7 @@ jobs:
# Save files created by ctest script
- name: Save published binary (Windows_intel)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: zip-vs2022_intel-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip
@@ -340,7 +424,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (Linux_intel)
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -360,7 +444,7 @@ jobs:
CXX: ${{ steps.setup-fortran.outputs.cxx }}
run: |
cd "${{ runner.workspace }}/hdf5/hdfsrc"
- cmake --workflow --preset=ci-StdShar-Intel --fresh
+ cmake --workflow --preset=${{ inputs.preset_name }}-Intel --fresh
shell: bash
- name: Publish binary (Linux_intel)
@@ -371,7 +455,7 @@ jobs:
cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build/hdf5
cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build/hdf5
cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5
- cp ${{ runner.workspace }}/hdf5/build/ci-StdShar-Intel/*.tar.gz ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/*.tar.gz ${{ runner.workspace }}/build/hdf5
cd "${{ runner.workspace }}/build"
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz hdf5
shell: bash
@@ -383,7 +467,7 @@ jobs:
# Save files created by ctest script
- name: Save published binary (Linux_intel)
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: tgz-ubuntu-2204_intel-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz