From 4f58898b788441ab612b3e8a3ca11a9240c93f6b Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 25 Feb 2025 11:46:17 -0600 Subject: [PATCH 1/5] Add a readme file to workflows --- .github/workflows/README.md | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/README.md diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 00000000000..6e759178158 --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,52 @@ +# Workflows for Testing +The workflows are contained in .yml files and use the callable workflow method. +Workflows can be triggered from PR, creation or merge, and on a scheduled timer. +There are a few that only get triggered manually. + +## Scheduled Workflows +- daily-schedule.yml +- h5py.yml +- markdown-link-check.yml +- scorecard.yml +- vfd.yml +- vol.yml + +## Manual Only Workflows +- publish-branch.yml +- publish-release.yml +- release.yml + +## Triggered Workflows +- autotools.yml +- clang-format-check.yml +- cmake.yml +- codespell.yml +- cve.yml +- hdfeos5.yml +- linkchecker.yml +- netcdf.yml + +## Workflows called by autotools.yml +- main-auto-spc.yml +- main-auto-par-spc.yml +- main-auto-par.yml +- main-auto.yml +- intel-auto.yml +- nvhpc-auto.yml +- aocc-auto.yml +- testxpr-auto.yml + +## Workflows called by cmake.yml +- main-cmake-spc.yml +- main-cmake.yml +- cmake-bintest.yml +- main-cmake-par.yml +- main-cmake-par-spc.yml +- intel-cmake.yml +- nvhpc-cmake.yml +- aocc-cmake.yml +- testxpr-cmake.yml +- julia-cmake.yml +- msys2-cmake.yml +- i386-cmake.yml + From c4b8a5ba35a020c0ee7f99326a6e1e4be3902aac Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 25 Feb 2025 15:55:12 -0600 Subject: [PATCH 2/5] Update descriptions --- .github/workflows/README.md | 51 ++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 6e759178158..2542a2a6184 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -4,27 +4,48 @@ Workflows can be triggered from PR, creation or merge, and on a scheduled timer. There are a few that only get triggered manually. ## Scheduled Workflows -- daily-schedule.yml -- h5py.yml -- markdown-link-check.yml -- scorecard.yml -- vfd.yml -- vol.yml +- daily-schedule.yml executes the daily-build.yml which first checks that there are changes + * tarball.yml to create a source.zip and source.tar.gz + * cygwin-cmake.yml to test on cygwin + * cmake-script.yml to test and report to my.cdash + * cmake-par-script.yml to test with released MPI and report to my.cdash + * cmake-par-source.yml to test with MPI default branch and report to my.cdash + * cmake-analysis.yml to test with LEAK and ADDRESS sanitizers and report to my.cdash + * cmake-ctest.yml to create signed binaries with commit hash in the name + * abi-report.yml to compare ABI to last released binaries + * release-files.yml uploads new binaries to snapshots + * remove-files.yml remove previous binaries +- h5py.yml executes python tests for h5py +- markdown-link-check.yml checks the links in markdown files +- scorecard.yml executes code-scanning and uploads to Github dashboard +- vfd.yml executes vfd-main.yml with combos of Release and Debug + * vfd-subfiling.yml configures, builds, and tests MPI with subfiling feature +- vol.yml calls the following workflows + * vol_rest.yml tests the REST VOL connector + * vol_ext_passthru.yml tests the external passthrough VOL connector + * vol_async.yml tests the asynchronous I/O VOL connector + * vol_cache.yml tests the cache VOL connector" + * vol_adios2.yml tests the ADIOS2 VOL connector + * vol_log.yml tests the Log-based VOL connector ## Manual Only Workflows -- publish-branch.yml -- publish-release.yml -- release.yml +- publish-branch.yml publishes a local folder to the support.hdfgroup bucket +- publish-release.yml publishes release binaries to the support.hdfgroup bucket +- release.yml creates binaries for an official release or snapshot + * tarball.yml to create a source.zip and source.tar.gz + * cmake-ctest.yml to create signed binaries + * abi-report.yml to compare ABI to last released binaries + * release-files.yml uploads new binaries to releases page ## Triggered Workflows - autotools.yml -- clang-format-check.yml +- clang-format-check.yml runs clang-foramt and reports issues - cmake.yml -- codespell.yml -- cve.yml -- hdfeos5.yml -- linkchecker.yml -- netcdf.yml +- codespell.yml checks spelling +- cve.yml executes test_hdf5_cve.sh script +- hdfeos5.yml configures and builds HDF5 then tests HDF-EOS5 +- linkchecker.yml verifies the links in generated doxygen files +- netcdf.yml configures and builds HDF5 then tests netcdf ## Workflows called by autotools.yml - main-auto-spc.yml From 47b64b11dd5febe8de4b34502d3ead8592c8c562 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 25 Feb 2025 16:28:11 -0600 Subject: [PATCH 3/5] Update CMake workflow descriptions --- .github/workflows/README.md | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 2542a2a6184..fa1aafe4e98 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -58,16 +58,27 @@ There are a few that only get triggered manually. - testxpr-auto.yml ## Workflows called by cmake.yml -- main-cmake-spc.yml -- main-cmake.yml -- cmake-bintest.yml -- main-cmake-par.yml -- main-cmake-par-spc.yml -- intel-cmake.yml -- nvhpc-cmake.yml -- aocc-cmake.yml -- testxpr-cmake.yml -- julia-cmake.yml -- msys2-cmake.yml -- i386-cmake.yml +- main-cmake-spc.yml configure, build, and test HDF5 with: + * API default v1_6 + * API default v1_8 + * API default v1_10 + * API default v1_12 + * API default v1_14 + * API default v2_0 + * using system zlib + * using zlibng + * using no filters + * in debug mode and werror + * in release mode and werror +- main-cmake.yml configure, build, test, and package HDF5 on ubuntu, macos, and Windows +- cmake-bintest.yml test binary packages created by main-cmake.yml +- main-cmake-par.yml configure, build, and test HDF5 with openmpi +- main-cmake-par-spc.yml configure, build, and test HDF5 with HDF5_ENABLE_WARNINGS_AS_ERRORS=ON +- intel-cmake.yml configure, build, and test HDF5 with Intel OneAPI 2024.1 on linux and windows +- nvhpc-cmake.yml configure, build, and test HDF5 with nvhpc-24-11 +- aocc-cmake.yml configure, build, and test HDF5 with AOCC 4.2.0 and OpenMPI 4.1.6 +- testxpr-cmake.yml configure, build, and test HDF5 with HDF_TEST_EXPRESS=0 +- julia-cmake.yml configure and build HDF5, then test julia hdf5 source +- msys2-cmake.yml configure, build, and test HDF5 on mingw32, mingw64, ucrt64, clang64 +- i386-cmake.yml configure, build, and test HDF5 on 32-bit linux From c287f825230af7af68cea454ad25f6347f6ce0e0 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 25 Feb 2025 16:55:59 -0600 Subject: [PATCH 4/5] Update autotools descriptions --- .github/workflows/README.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index fa1aafe4e98..3d3914eec78 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -48,14 +48,22 @@ There are a few that only get triggered manually. - netcdf.yml configures and builds HDF5 then tests netcdf ## Workflows called by autotools.yml -- main-auto-spc.yml -- main-auto-par-spc.yml -- main-auto-par.yml -- main-auto.yml -- intel-auto.yml -- nvhpc-auto.yml -- aocc-auto.yml -- testxpr-auto.yml +- main-auto-spc.yml configure, build, and test HDF5 with: + * API default v1_6 + * API default v1_8 + * API default v1_10 + * API default v1_12 + * API default v1_14 + * using no deprecated + * in debug mode and werror + * in release mode and werror +- main-auto-par-spc.yml configure, build, and test HDF5 with CFLAGS=-Werror +- main-auto-par.yml configure, build, and test HDF5 with openmpi +- main-auto.yml configure, build, and test HDF5 +- intel-auto.yml configure, build, and test HDF5 with Intel OneAPI 2024.1 on linux and windows +- nvhpc-auto.yml configure, build, and test HDF5 with nvhpc-24-11 +- aocc-auto.yml configure, build, and test HDF5 with AOCC 4.2.0 and OpenMPI 4.1.6 +- testxpr-auto.yml configure, build, and test HDF5 with HDF_TEST_EXPRESS=0 ## Workflows called by cmake.yml - main-cmake-spc.yml configure, build, and test HDF5 with: @@ -70,6 +78,7 @@ There are a few that only get triggered manually. * using no filters * in debug mode and werror * in release mode and werror + * with minimum cmake Version 3.18 - main-cmake.yml configure, build, test, and package HDF5 on ubuntu, macos, and Windows - cmake-bintest.yml test binary packages created by main-cmake.yml - main-cmake-par.yml configure, build, and test HDF5 with openmpi From 088d8873b82c77d9e103ddead895178720bd6197 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Tue, 25 Feb 2025 17:41:25 -0600 Subject: [PATCH 5/5] Update README.md Minor Edits: removed mentioning of versions, added text for clarification --- .github/workflows/README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 3d3914eec78..7db624eb44e 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -12,10 +12,10 @@ There are a few that only get triggered manually. * cmake-par-source.yml to test with MPI default branch and report to my.cdash * cmake-analysis.yml to test with LEAK and ADDRESS sanitizers and report to my.cdash * cmake-ctest.yml to create signed binaries with commit hash in the name - * abi-report.yml to compare ABI to last released binaries + * abi-report.yml to compare ABI to the last released binaries * release-files.yml uploads new binaries to snapshots * remove-files.yml remove previous binaries -- h5py.yml executes python tests for h5py +- h5py.yml executes Python tests for h5py - markdown-link-check.yml checks the links in markdown files - scorecard.yml executes code-scanning and uploads to Github dashboard - vfd.yml executes vfd-main.yml with combos of Release and Debug @@ -24,7 +24,7 @@ There are a few that only get triggered manually. * vol_rest.yml tests the REST VOL connector * vol_ext_passthru.yml tests the external passthrough VOL connector * vol_async.yml tests the asynchronous I/O VOL connector - * vol_cache.yml tests the cache VOL connector" + * vol_cache.yml tests the cache VOL connector * vol_adios2.yml tests the ADIOS2 VOL connector * vol_log.yml tests the Log-based VOL connector @@ -39,13 +39,13 @@ There are a few that only get triggered manually. ## Triggered Workflows - autotools.yml -- clang-format-check.yml runs clang-foramt and reports issues +- clang-format-check.yml runs clang-format and reports issues - cmake.yml - codespell.yml checks spelling - cve.yml executes test_hdf5_cve.sh script - hdfeos5.yml configures and builds HDF5 then tests HDF-EOS5 - linkchecker.yml verifies the links in generated doxygen files -- netcdf.yml configures and builds HDF5 then tests netcdf +- netcdf.yml configures and builds HDF5 then tests NetCDF ## Workflows called by autotools.yml - main-auto-spc.yml configure, build, and test HDF5 with: @@ -55,14 +55,14 @@ There are a few that only get triggered manually. * API default v1_12 * API default v1_14 * using no deprecated - * in debug mode and werror - * in release mode and werror + * in debug mode and -Werror compiler option + * in release mode and -Werror compiler option - main-auto-par-spc.yml configure, build, and test HDF5 with CFLAGS=-Werror - main-auto-par.yml configure, build, and test HDF5 with openmpi - main-auto.yml configure, build, and test HDF5 -- intel-auto.yml configure, build, and test HDF5 with Intel OneAPI 2024.1 on linux and windows -- nvhpc-auto.yml configure, build, and test HDF5 with nvhpc-24-11 -- aocc-auto.yml configure, build, and test HDF5 with AOCC 4.2.0 and OpenMPI 4.1.6 +- intel-auto.yml configure, build, and test HDF5 with Intel OneAPI on Linux and Windows +- nvhpc-auto.yml configure, build, and test HDF5 with nvhpc +- aocc-auto.yml configure, build, and test HDF5 with AOCC and OpenMPI - testxpr-auto.yml configure, build, and test HDF5 with HDF_TEST_EXPRESS=0 ## Workflows called by cmake.yml @@ -76,18 +76,18 @@ There are a few that only get triggered manually. * using system zlib * using zlibng * using no filters - * in debug mode and werror - * in release mode and werror + * in debug mode and -Werror compiler option + * in release mode and -Werror compiler option * with minimum cmake Version 3.18 -- main-cmake.yml configure, build, test, and package HDF5 on ubuntu, macos, and Windows +- main-cmake.yml configure, build, test, and package HDF5 on Ubuntu, macOS, and Windows - cmake-bintest.yml test binary packages created by main-cmake.yml - main-cmake-par.yml configure, build, and test HDF5 with openmpi - main-cmake-par-spc.yml configure, build, and test HDF5 with HDF5_ENABLE_WARNINGS_AS_ERRORS=ON -- intel-cmake.yml configure, build, and test HDF5 with Intel OneAPI 2024.1 on linux and windows -- nvhpc-cmake.yml configure, build, and test HDF5 with nvhpc-24-11 -- aocc-cmake.yml configure, build, and test HDF5 with AOCC 4.2.0 and OpenMPI 4.1.6 +- intel-cmake.yml configure, build, and test HDF5 with Intel OneAPI on Linux and Windows +- nvhpc-cmake.yml configure, build, and test HDF5 with nvhpc +- aocc-cmake.yml configure, build, and test HDF5 with AOCC and OpenMPI - testxpr-cmake.yml configure, build, and test HDF5 with HDF_TEST_EXPRESS=0 -- julia-cmake.yml configure and build HDF5, then test julia hdf5 source +- julia-cmake.yml configure and build HDF5, then test Julia hdf5 source - msys2-cmake.yml configure, build, and test HDF5 on mingw32, mingw64, ucrt64, clang64 -- i386-cmake.yml configure, build, and test HDF5 on 32-bit linux +- i386-cmake.yml configure, build, and test HDF5 on 32-bit Linux