Files
dependabot[bot] 80b691787b build(deps): bump the github-actions group with 11 updates (#6656)
Bumps the github-actions group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [lukka/get-cmake](https://github.com/lukka/get-cmake) | `4.4.1` | `4.4.2` |
| [actions/setup-java](https://github.com/actions/setup-java) | `5.6.0` | `6.0.0` |
| [fortran-lang/setup-fortran](https://github.com/fortran-lang/setup-fortran) | `1.9.2` | `1.10.0` |
| [EndBug/add-and-commit](https://github.com/endbug/add-and-commit) | `10.0.0` | `11.1.1` |
| [dorny/paths-filter](https://github.com/dorny/paths-filter) | `4.0.2` | `4.0.3` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `4.37.3` | `4.37.9` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.37.3` | `4.37.9` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.37.3` | `4.37.9` |
| [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) | `1.5.2` | `1.5.5` |
| [vmactions/openbsd-vm](https://github.com/vmactions/openbsd-vm) | `1.4.5` | `1.4.7` |
| [softprops/action-gh-release](https://github.com/softprops/action-gh-release) | `3.0.2` | `3.0.3` |


Updates `lukka/get-cmake` from 4.4.1 to 4.4.2
- [Release notes](https://github.com/lukka/get-cmake/releases)
- [Changelog](https://github.com/lukka/get-cmake/blob/main/RELEASE_PROCESS.md)
- [Commits](https://github.com/lukka/get-cmake/compare/4a7d025fc60f00db0c7b44ebf783d19b52444830...fffaaafeea488556c2c12dad60690008bc1caacb)

Updates `actions/setup-java` from 5.6.0 to 6.0.0
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/03ad4de0992f5dab5e18fcb136590ce7c4a0ac95...dd06d9cba3e5552c54d9f8ea23572deb30010f7c)

Updates `fortran-lang/setup-fortran` from 1.9.2 to 1.10.0
- [Release notes](https://github.com/fortran-lang/setup-fortran/releases)
- [Commits](https://github.com/fortran-lang/setup-fortran/compare/195bac823dc6e05bb7c706311ad4540ffc34d5b9...be037f0a45b1160f139d4ccd0b96f9e9bfd6a682)

Updates `EndBug/add-and-commit` from 10.0.0 to 11.1.1
- [Release notes](https://github.com/endbug/add-and-commit/releases)
- [Commits](https://github.com/endbug/add-and-commit/compare/290ea2c423ad77ca9c62ae0f5b224379612c0321...cc9c08ba6c8df3b93a8f2db63e89b98368ae2ae8)

Updates `dorny/paths-filter` from 4.0.2 to 4.0.3
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/7b450fff21473bca461d4b92ce414b9d0420d706...ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d)

Updates `github/codeql-action/init` from 4.37.3 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...cdf488f595d80d6e07e03d4674febd5ab45fa938)

Updates `github/codeql-action/analyze` from 4.37.3 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...cdf488f595d80d6e07e03d4674febd5ab45fa938)

Updates `github/codeql-action/upload-sarif` from 4.37.3 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Commits](https://github.com/github/codeql-action/compare/v4.37.3...v4.37.9)

Updates `vmactions/freebsd-vm` from 1.5.2 to 1.5.5
- [Release notes](https://github.com/vmactions/freebsd-vm/releases)
- [Commits](https://github.com/vmactions/freebsd-vm/compare/77ed28d336d03fe19a3f4f7266c1d2c4714dd79d...f0552d3b69211736abd97f02ff3d4674c56b73b1)

Updates `vmactions/openbsd-vm` from 1.4.5 to 1.4.7
- [Release notes](https://github.com/vmactions/openbsd-vm/releases)
- [Commits](https://github.com/vmactions/openbsd-vm/compare/c941015845c0f0c429676840963dc63b226d4f69...86cdc08415d9d0865267e686561e276c52d62530)

Updates `softprops/action-gh-release` from 3.0.2 to 3.0.3
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/3d0d9888cb7fd7b750713d6e236d1fcb99157228...efb35369e0ad2afab669f228072c1b0d510eae64)

---
updated-dependencies:
- dependency-name: lukka/get-cmake
  dependency-version: 4.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/setup-java
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: fortran-lang/setup-fortran
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: EndBug/add-and-commit
  dependency-version: 11.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: dorny/paths-filter
  dependency-version: 4.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: vmactions/freebsd-vm
  dependency-version: 1.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: vmactions/openbsd-vm
  dependency-version: 1.4.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 09:06:37 -05:00

364 lines
13 KiB
YAML

name: hdf5 dev CI
# Triggers the workflow on a call from another workflow
on:
workflow_call:
inputs:
cmake_version:
description: "3.26.0 or later, latest"
required: true
type: string
thread_safety:
description: "TS or empty"
required: true
type: string
concurrent:
description: "CC or empty"
required: true
type: string
build_mode:
description: "release vs. debug build"
required: true
type: string
save_binary:
description: "binary-ext-name or missing"
required: false
default: "skip"
type: string
java_version:
description: "Java version for testing (11, 17, 21, 24, latest, auto)"
required: false
default: "auto"
type: string
force_java_implementation:
description: "Force specific Java implementation (auto, ffm, jni)"
required: false
default: "jni"
type: string
win_runner:
description: "Windows runner version to use (windows-2022, windows-latest, etc.)"
required: false
default: "windows-latest"
type: string
win_vs_generator:
description: "CMake generator to use for Visual Studio"
required: false
default: "Visual Studio 18 2026"
type: string
permissions:
contents: read
env:
CTEST_OUTPUT_ON_FAILURE: 1
jobs:
# A workflow that builds the library and runs all the tests
Build_and_test:
strategy:
# The current matrix has one dimensions:
#
# * config name
#
# Most configuration information is added via the 'include' mechanism,
# which will append the key-value pairs in the configuration where the
# names match.
matrix:
name:
- "Windows MSVC"
- "Ubuntu gcc"
- "MacOS Clang"
# This is where we list the bulk of the options for each configuration.
# The key-value pair values are usually appropriate for being CMake
# configure values, so be aware of that.
include:
# Windows w/ MSVC
#
# No Fortran, parallel, or VFDs that rely on POSIX things
- name: "Windows MSVC"
ostype: windows
os: ${{ inputs.win_runner }}
shared: ON
cpp: ON
fortran: OFF
java: ON
docs: ON
libaecfc: ON
localaec: OFF
zlibfc: ON
localzlib: OFF
parallel: OFF
mirror_vfd: OFF
direct_vfd: OFF
generator: "-G \"${{ inputs.win_vs_generator }}\" -A x64"
run_tests: true
# Linux (Ubuntu) w/ gcc
#
- name: "Ubuntu gcc"
ostype: ubuntu
os: ubuntu-24.04
shared: ON
cpp: ON
fortran: ON
java: ON
docs: ON
libaecfc: ON
localaec: OFF
zlibfc: ON
localzlib: OFF
parallel: OFF
mirror_vfd: ON
direct_vfd: ON
generator: "-G Ninja"
run_tests: true
# MacOS w/ Clang
#
- name: "MacOS Clang"
ostype: macos
os: macos-15
shared: ON
cpp: ON
fortran: OFF
java: ON
docs: ON
libaecfc: ON
localaec: OFF
zlibfc: ON
localzlib: OFF
parallel: OFF
mirror_vfd: ON
direct_vfd: OFF
generator: "-G Ninja"
run_tests: true
# Sets the job's name from the properties
name: "${{ matrix.name }}-${{ inputs.build_mode }}-${{ inputs.thread_safety }}-${{ inputs.concurrent }}"
# Don't run the action if the commit message says to skip CI
if: "!contains(github.event.head_commit.message, 'skip-ci')"
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
#Useful for debugging
- name: Dump matrix context
run: echo '${{ toJSON(matrix) }}'
- name: Install Dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
if: matrix.ostype == 'ubuntu'
# CMake gets libaec from fetchcontent
- name: Install CMake
uses: lukka/get-cmake@fffaaafeea488556c2c12dad60690008bc1caacb # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
- name: Check CMake Version
shell: bash
run: |
which cmake
cmake --version
- name: Set up Java (if specified or FFM required)
if: inputs.java_version != 'auto' || inputs.force_java_implementation == 'ffm'
uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v5
with:
distribution: ${{ inputs.force_java_implementation == 'ffm' && 'oracle' || 'temurin' }}
java-version: |
${{
inputs.force_java_implementation == 'ffm' && '25' ||
inputs.java_version == 'latest' && '24' ||
inputs.java_version
}}
- name: Verify Java Setup
if: inputs.java_version != 'auto' || inputs.force_java_implementation == 'ffm'
run: |
java -version
echo "JAVA_HOME=$JAVA_HOME"
echo "Selected Java implementation: ${{ inputs.force_java_implementation }}"
- name: Set environment for MSVC (Windows)
run: |
# Set these environment variables so CMake picks the correct compiler
echo "CXX=cl.exe" >> $GITHUB_ENV
echo "CC=cl.exe" >> $GITHUB_ENV
if: matrix.ostype == 'windows'
- name: Setup jextract (FFM builds only)
if: ${{ inputs.force_java_implementation == 'ffm' }}
uses: ./.github/actions/setup-jextract
with:
java-version: '25'
# CONFIGURE
- name: Configure
run: |
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
${{ matrix.generator }} \
--log-level=VERBOSE \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }} \
-DHDF5_ENABLE_ALL_WARNINGS:BOOL=ON \
-DHDF5_ENABLE_DOXY_WARNINGS:BOOL=ON \
-DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \
-DHDF5_BUILD_CPP_LIB:BOOL=${{ matrix.cpp }} \
-DHDF5_BUILD_FORTRAN:BOOL=${{ matrix.fortran }} \
-DHDF5_BUILD_JAVA:BOOL=${{ matrix.java }} \
-DHDF5_BUILD_DOC:BOOL=${{ matrix.docs }} \
-DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=${{ matrix.zlibfc }} \
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=${{ matrix.libaecfc }} \
-DLIBAEC_USE_LOCALCONTENT:BOOL=${{ matrix.localaec }} \
-DZLIB_USE_LOCALCONTENT:BOOL=${{ matrix.localzlib }} \
-DHDF5_TEST_API:BOOL=ON \
-DHDF5_TEST_SHELL_SCRIPTS:BOOL=ON \
-DENABLE_EXTENDED_TESTS:BOOL=OFF \
-DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \
-DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \
-DHDF5_PACK_EXAMPLES:BOOL=ON \
-DHDF5_PACKAGE_EXTLIBS:BOOL=ON \
-DHDF5_PACK_MACOSX_DMG:BOOL=OFF \
-DHDF5_ENABLE_JNI:BOOL=${{ inputs.force_java_implementation == 'jni' }} \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety != 'TS' && inputs.concurrent != 'CC'}}
- name: Configure (Thread-Safe)
run: |
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
${{ matrix.generator }} \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_STATIC_LIBS:BOOL=${{ (matrix.ostype != 'windows') }} \
-DHDF5_ENABLE_ALL_WARNINGS:BOOL=ON \
-DHDF5_ENABLE_THREADSAFE:BOOL=ON \
-DHDF5_ENABLE_CONCURRENCY:BOOL=OFF \
-DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN:BOOL=OFF \
-DHDF5_BUILD_JAVA:BOOL=OFF \
-DHDF5_BUILD_HL_LIB:BOOL=OFF \
-DHDF5_BUILD_DOC:BOOL=OFF \
-DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=${{ matrix.zlibfc }} \
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=${{ matrix.libaecfc }} \
-DLIBAEC_USE_LOCALCONTENT:BOOL=${{ matrix.localaec }} \
-DZLIB_USE_LOCALCONTENT:BOOL=${{ matrix.localzlib }} \
-DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \
-DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \
-DHDF5_PACK_EXAMPLES:BOOL=ON \
-DHDF5_PACK_MACOSX_DMG:BOOL=OFF \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety == 'TS' && inputs.concurrent != 'CC'}}
- name: Configure (Concurrency)
run: |
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
${{ matrix.generator }} \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=${{ (matrix.ostype != 'windows') }} \
-DHDF5_ENABLE_ALL_WARNINGS=ON \
-DHDF5_ENABLE_THREADSAFE:BOOL=OFF \
-DHDF5_ENABLE_CONCURRENCY:BOOL=ON \
-DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
-DHDF5_BUILD_FORTRAN:BOOL=OFF \
-DHDF5_BUILD_JAVA:BOOL=OFF \
-DHDF5_BUILD_HL_LIB:BOOL=OFF \
-DHDF5_BUILD_DOC=OFF \
-DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \
-DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \
-DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \
-DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \
-DHDF5_PACK_EXAMPLES:BOOL=ON \
$GITHUB_WORKSPACE
shell: bash
if: ${{ inputs.thread_safety != 'TS' && inputs.concurrent == 'CC'}}
# BUILD
- name: Build
run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
working-directory: ${{ runner.workspace }}/build
# RUN TESTS
- name: Run Tests
run: ctest . --parallel 2 -C ${{ inputs.build_mode }}
working-directory: ${{ runner.workspace }}/build
if: ${{ matrix.run_tests }}
- name: Run Package
run: |
if [[ "${{ matrix.ostype }}" == "macos" ]]; then
# Disable indexing to prevent file locking during CPack
sudo mdutil -i off / || true
# Run cpack with retry
cpack -C ${{ inputs.build_mode }} -V || (sleep 5 && cpack -C ${{ inputs.build_mode }} -V)
else
cpack -C ${{ inputs.build_mode }} -V
fi
working-directory: ${{ runner.workspace }}/build
shell: bash
# if: ${{ (matrix.ostype != 'macos') && (inputs.build_mode != 'Debug') }}
# - name: Run Package (Mac_latest)
# run: cpack -C ${{ inputs.build_mode }} -G STGZ -V
# if: ${{ (matrix.ostype == 'macos') }}
- name: List files in the space
run: |
ls -l ${{ runner.workspace }}/build
# Save files created by CTest script
- name: Save published binary (Windows)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v5
with:
name: zip-vs2026_cl-${{ inputs.build_mode }}-${{ inputs.save_binary }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-win64.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.ostype == 'windows') && ( inputs.save_binary != 'skip') }}
- name: Save published binary (linux)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v5
with:
name: tgz-ubuntu-2404_gcc-${{ inputs.build_mode }}-${{ inputs.save_binary }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-Linux.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.ostype == 'ubuntu') && ( inputs.save_binary != 'skip') }}
- name: Save published binary (Mac_latest)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v5
with:
name: tgz-macos15_clang-${{ inputs.build_mode }}-${{ inputs.save_binary }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (matrix.ostype == 'macos') && ( inputs.save_binary != 'skip') }}