Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f635134
Update CMake add presets
byrnHDF Jul 2, 2025
c848bea
Correct jpeg example
byrnHDF Jul 2, 2025
c007e54
Remove unsupported filter
byrnHDF Jul 2, 2025
9d0e163
Add PLUGIN_PATH env to run scripts
byrnHDF Jul 2, 2025
17c05e7
Correct Path setting
byrnHDF Jul 2, 2025
ea3e182
Add binary test workflow
byrnHDF Jul 3, 2025
6a31049
Correct indents
byrnHDF Jul 3, 2025
21684c7
Correct workflow needs
byrnHDF Jul 3, 2025
a304992
Correct workflow needs
byrnHDF Jul 3, 2025
9bb8b13
Correct uncompress and names
byrnHDF Jul 3, 2025
9c3f8cc
Correct workflow inputs
byrnHDF Jul 3, 2025
a8e67a7
Add list files
byrnHDF Jul 3, 2025
cea6cb5
Update plugins uncompress path
byrnHDF Jul 6, 2025
c175b3c
Adjust tar paths
byrnHDF Jul 6, 2025
2f401c6
Add version to path
byrnHDF Jul 6, 2025
f458608
Fix/update copy
byrnHDF Jul 7, 2025
37069c2
Correct copy
byrnHDF Jul 7, 2025
4ac6a3f
Update copy
byrnHDF Jul 7, 2025
f1ef03d
Another list files step
byrnHDF Jul 7, 2025
e74e16c
fix run command
byrnHDF Jul 7, 2025
c0e6c41
Add more ls paths
byrnHDF Jul 7, 2025
ab281ec
Correct paths
byrnHDF Jul 7, 2025
763af3e
Fix ls steps
byrnHDF Jul 7, 2025
10f04b8
Adjust copy commands
byrnHDF Jul 7, 2025
89e4450
Adjust copy path
byrnHDF Jul 7, 2025
4832c99
Adjust ENV vars
byrnHDF Jul 7, 2025
fc4731b
Some more ENV fixes
byrnHDF Jul 7, 2025
89c3ff2
Fix append to PATH on windows
byrnHDF Jul 7, 2025
a76f0d3
Correct logic for platform/compiler
byrnHDF Jul 7, 2025
fc8953f
quote GH varname
byrnHDF Jul 9, 2025
9efa722
remove typo
byrnHDF Jul 9, 2025
03c69cb
Try powershell command
byrnHDF Jul 10, 2025
775fd09
Try Add-Content
byrnHDF Jul 10, 2025
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
338 changes: 338 additions & 0 deletions .github/workflows/cmake-bintest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,338 @@
name: hdf5 plugins bintest runs

# Triggers the workflow on a call from another workflow
on:
workflow_call:
inputs:
use_hdf:
description: "The hdf5 base name of the binaries"
required: true
type: string
file_base:
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
use_environ:
description: 'Environment to locate files'
type: string
required: true
default: snapshots

permissions:
contents: read

jobs:
test_binary_win:
# Windows w/ MSVC + CMake
#
name: "Windows MSVC Binary Test"
runs-on: windows-latest
steps:
- name: Install Dependencies (Windows)
run: choco install ninja

- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1.13.0

- name: Install CMake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.31.6'

- name: Get hdf5 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/snapshot'
file: '${{ inputs.use_hdf }}-win-vs2022_cl.zip'

- name: Get hdf5 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/${{ inputs.use_hdf }}'
file: '${{ inputs.use_hdf }}-win-vs2022_cl.zip'

- name: Uncompress gh binary (Win)
run: 7z x ${{ github.workspace }}/${{ inputs.use_hdf }}-win-vs2022_cl.zip

- name: Uncompress hdf5 binary (Win)
working-directory: ${{ github.workspace }}/hdf5
run: 7z x HDF5-*-win64.zip
shell: bash

# Get files created by cmake-ctest script
- name: Get published plugins binary (Windows)
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: zip-vs2022_cl-binary
path: ${{ github.workspace }}/hdf5

- name: Uncompress plugins gh binary (Win)
run: 7z x ${{ github.workspace }}/hdf5/${{ inputs.file_base }}-win-vs2022_cl.zip

- name: List files for the space (Win)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5_plugins

- name: Uncompress plugins binary (Win)
working-directory: ${{ github.workspace }}/hdf5_plugins
run: 7z x h5pl-*-win64.zip
shell: bash

- name: List files for the space (Win)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5_plugins

- name: create hdf5 location (Win)
working-directory: ${{ github.workspace }}/hdf5
run: |
New-Item -Path "${{ github.workspace }}/HDF_Group/HDF5" -ItemType Directory
Copy-Item -Path "${{ github.workspace }}/hdf5/HDF*/*" -Destination "${{ github.workspace }}/HDF_Group/HDF5" -Recurse -Force
Copy-Item -Path "${{ github.workspace }}/hdf5_plugins/h5pl*/*" -Destination "${{ github.workspace }}/HDF_Group/HDF5" -Recurse -Force
shell: pwsh

- name: List files for the space (Win)
run: ls -l ${{ github.workspace }}/HDF_Group/HDF5

- name: set hdf5lib name
id: set-hdf5lib-name
run: |
HDF5DIR="${{ github.workspace }}/HDF_Group/HDF5"
echo "HDF5_ROOT=$HDF5DIR" >> $GITHUB_OUTPUT
echo "HDF5_PLUGIN_PATH=$HDF5DIR/lib/plugin" >> $GITHUB_OUTPUT
shell: bash

- name: List files for the binaries (Win)
run: ls -l ${{ github.workspace }}/HDF_Group/HDF5

- name: Set Path
run: echo "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/bin" >> "$GITHUB_PATH"

- name: Set Path (pwsh)
run: |
echo "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
Add-Content $env:GITHUB_PATH "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/bin"
shell: pwsh

- name: Run ctest (Windows)
env:
HDF5_ROOT: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}
HDF5_PLUGIN_PATH: ${{ steps.set-hdf5lib-name.outputs.HDF5_PLUGIN_PATH }}
run: |
cd "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/HDFPLExamples"
cmake --workflow --preset=${{ inputs.preset_name }}-MSVC --fresh
shell: bash

test_binary_linux:
# Linux (Ubuntu) w/ gcc + CMake
#
name: "Ubuntu gcc Binary Test"
runs-on: ubuntu-latest
steps:
- name: Install CMake Dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install ninja-build

- name: Install CMake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.31.6'

- name: Get hdf5 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/snapshot'
file: '${{ inputs.use_hdf }}-ubuntu-2404_gcc.tar.gz'

- name: Get hdf5 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/${{ inputs.use_hdf }}'
file: '${{ inputs.use_hdf }}-ubuntu-2404_gcc.tar.gz'

- name: Uncompress gh binary (Linux)
run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-ubuntu-2404_gcc.tar.gz

- name: Uncompress hdf5 binary (Linux)
run: |
cd "${{ github.workspace }}/hdf5"
tar -zxvf ${{ github.workspace }}/hdf5/HDF5-*-Linux.tar.gz --strip-components 1

# Get files created by cmake-ctest script
- name: Get published plugins binary (Linux)
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: tgz-ubuntu-2404_gcc-binary
path: ${{ github.workspace }}

- name: Uncompress plugins gh binary (Linux)
run: tar -zxvf ${{ github.workspace }}/${{ inputs.file_base }}-ubuntu-2404_gcc.tar.gz

- name: List files for the space (Linux)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5_plugins

- name: Uncompress plugins binary (Linux)
run: |
cd "${{ github.workspace }}/hdf5_plugins"
tar -zxvf ${{ github.workspace }}/hdf5_plugins/h5pl-*-Linux.tar.gz --strip-components 1

- name: List files for the space (Linux)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5/HDF_Group
ls -l ${{ github.workspace }}/hdf5/HDF_Group/HDF5
ls -l ${{ github.workspace }}/hdf5_plugins
ls -l ${{ github.workspace }}/hdf5_plugins/HDF_Group
ls -l ${{ github.workspace }}/hdf5_plugins/HDF_Group/HDF5

- name: create hdf5 location (Linux)
working-directory: ${{ github.workspace }}/hdf5
run: |
mkdir -p "${{ github.workspace }}/HDF_Group/HDF5"
cp -r ${{ github.workspace }}/hdf5/HDF_Group/HDF5/*/* ${{ github.workspace }}/HDF_Group/HDF5
cp -r ${{ github.workspace }}/hdf5_plugins/HDF_Group/HDF5/*/* ${{ github.workspace }}/HDF_Group/HDF5

- name: List files for the space (Linux)
run: |
ls -l ${{ github.workspace }}/HDF_Group/HDF5

- name: set hdf5lib name
id: set-hdf5lib-name
run: |
HDF5DIR=${{ github.workspace }}/HDF_Group/HDF5/
echo "HDF5_ROOT=$HDF5DIR" >> $GITHUB_OUTPUT
echo "HDF5_PLUGIN_PATH=$HDF5DIR/lib/plugin" >> $GITHUB_OUTPUT

- name: List files for the space (Linux)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}

- name: Run ctest (Linux)
env:
HDF5_ROOT: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}
HDF5_PLUGIN_PATH: ${{ steps.set-hdf5lib-name.outputs.HDF5_PLUGIN_PATH }}
LD_LIBRARY_PATH: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/lib;$LD_LIBRARY_PATH
run: |
cd "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/share/HDFPLExamples"
cmake --workflow --preset=${{ inputs.preset_name }}-GNUC --fresh
shell: bash

test_binary_mac_latest:
# MacOS w/ Clang + CMake
name: "MacOS Clang Binary Test"
runs-on: macos-latest
steps:
- name: Install Dependencies (MacOS_latest)
run: brew install ninja

- name: Install CMake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.31.6'

- name: Get hdf5 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/snapshot'
file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'

- name: Get hdf5 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/${{ inputs.use_hdf }}'
file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'

- name: Uncompress gh binary (MacOS_latest)
run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-macos14_clang*.tar.gz

- name: Uncompress hdf5 binary (MacOS_latest)
run: |
cd "${{ github.workspace }}/hdf5"
tar -zxvf ${{ github.workspace }}/hdf5/HDF5-*-Darwin.tar.gz --strip-components 1

# Get files created by cmake-ctest script
- name: Get published binary (MacOS_latest)
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: tgz-macos14_clang-binary
path: ${{ github.workspace }}

- name: Uncompress gh binary (MacOS_latest)
run: tar -zxvf ${{ github.workspace }}/${{ inputs.file_base }}-macos14_clang.tar.gz

- name: List files for the space (MacOS_latest)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5_plugins

- name: Uncompress plugins binary (MacOS_latest)
run: |
cd "${{ github.workspace }}/hdf5_plugins"
tar -zxvf ${{ github.workspace }}/hdf5_plugins/h5pl-*-Darwin.tar.gz --strip-components 1

- name: List files for the space (MacOS_latest)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ github.workspace }}/hdf5
ls -l ${{ github.workspace }}/hdf5_plugins
ls -l ${{ github.workspace }}/hdf5_plugins/HDF_Group

- name: create hdf5 location (MacOS_latest)
working-directory: ${{ github.workspace }}/hdf5
run: |
mkdir -p "${{ github.workspace }}/HDF_Group/HDF5"
cp -r ${{ github.workspace }}/hdf5/HDF_Group/HDF5/*/* ${{ github.workspace }}/HDF_Group/HDF5
cp -r ${{ github.workspace }}/hdf5_plugins/HDF_Group/HDF5/*/* ${{ github.workspace }}/HDF_Group/HDF5

- name: List files for the space (MacOS_latest)
run: ls -l ${{ github.workspace }}/HDF_Group/HDF5

- name: set hdf5lib name
id: set-hdf5lib-name
run: |
HDF5DIR=${{ github.workspace }}/HDF_Group/HDF5/
echo "HDF5_ROOT=$HDF5DIR" >> $GITHUB_OUTPUT
echo "HDF5_PLUGIN_PATH=$HDF5DIR/lib/plugin" >> $GITHUB_OUTPUT

- name: List files for the space (MacOS_latest)
run: |
ls -l ${{ github.workspace }}
ls -l ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}

- name: Run ctest (MacOS_latest)
id: run-ctest
env:
HDF5_ROOT: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}
HDF5_PLUGIN_PATH: ${{ steps.set-hdf5lib-name.outputs.HDF5_PLUGIN_PATH }}
DYLD_LIBRARY_PATH: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/lib;$DYLD_LIBRARY_PATH
run: |
cd "${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }}/share/HDFPLExamples"
cmake --workflow --preset=ci-StdShar-macos-Clang --fresh
shell: bash

10 changes: 5 additions & 5 deletions .github/workflows/cmake-ctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ jobs:

# Get files created by release script
- name: Get zip-tarball (Windows)
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: zip-tarball
path: ${{ github.workspace }}
Expand All @@ -179,7 +179,7 @@ jobs:
run: |
Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
.\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x
.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.86 -x
shell: pwsh
if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}

Expand All @@ -203,7 +203,7 @@ jobs:
shell: bash

- name: Sign files with Trusted Signing
uses: azure/trusted-signing-action@v0.5.0
uses: azure/trusted-signing-action@v0.5.1
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
Expand Down Expand Up @@ -330,7 +330,7 @@ jobs:

# Get files created by release script
- name: Get tgz-tarball (Linux)
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: tgz-tarball
path: ${{ github.workspace }}
Expand Down Expand Up @@ -496,7 +496,7 @@ jobs:

# Get files created by release script
- name: Get tgz-tarball (MacOS_latest)
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: tgz-tarball
path: ${{ github.workspace }}
Expand Down
Loading