diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index 5be31f72300..4a77bdf1de3 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -1,8 +1,24 @@ -name: hdf5 dev autools CI +name: hdf5 dev autotools CI # Controls when the action will run. Triggers the workflow on push or pull request on: - workflow_call: + workflow_dispatch: + push: + pull_request: + branches: [ develop ] + paths-ignore: + - '.github/CODEOWNERS' + - '.github/FUNDING.yml' + - 'doc/**' + - 'release_docs/**' + - 'ACKNOWLEDGEMENTS' + - 'COPYING**' + - '**.md' + +# Using concurrency to cancel any in-progress job or run +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true permissions: contents: read @@ -83,10 +99,21 @@ jobs: with: build_mode: "production" - call-release-cmake-julia: + call-release-auto-julia: name: "Autotools Julia Workflows" uses: ./.github/workflows/julia-auto.yml with: build_mode: "production" + + call-release-auto-xpr: + name: "Autotools TestExpress Workflows" + uses: ./.github/workflows/testxpr-auto.yml + +# workflow-msys2-autotools: +# name: "CMake msys2 Workflows" +# uses: ./.github/workflows/msys2-auto.yml +# with: +# build_mode: "production" +# build_option: "--enable-production" \ No newline at end of file diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 4a52424c2b2..5e97720891e 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,7 +2,23 @@ name: hdf5 dev cmake CI # Controls when the action will run. Triggers the workflow on push or pull request on: - workflow_call: + workflow_dispatch: + push: + pull_request: + branches: [ develop ] + paths-ignore: + - '.github/CODEOWNERS' + - '.github/FUNDING.yml' + - 'doc/**' + - 'release_docs/**' + - 'ACKNOWLEDGEMENTS' + - 'COPYING**' + - '**.md' + +# Using concurrency to cancel any in-progress job or run +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true permissions: contents: read @@ -91,4 +107,9 @@ jobs: uses: ./.github/workflows/julia-cmake.yml with: build_mode: "Release" - \ No newline at end of file + + call-release-cmake-xpr: + name: "CMake TestExpress Workflows" + uses: ./.github/workflows/testxpr-cmake.yml + + \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 845fc68c7ae..00000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: hdf5 dev CI - -# Controls when the action will run. Triggers the workflow on push or pull request -on: - workflow_dispatch: - push: - pull_request: - branches: [ develop ] - paths-ignore: - - '.github/CODEOWNERS' - - '.github/FUNDING.yml' - - 'doc/**' - - 'release_docs/**' - - 'ACKNOWLEDGEMENTS' - - 'COPYING**' - - '**.md' - -# Using concurrency to cancel any in-progress job or run -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} - cancel-in-progress: true - -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: - workflow-autotools: - name: "Autotools Workflows" - uses: ./.github/workflows/autotools.yml - if: "!contains(github.event.head_commit.message, 'skip-ci')" - - workflow-cmake: - name: "CMake Workflows" - uses: ./.github/workflows/cmake.yml - if: "!contains(github.event.head_commit.message, 'skip-ci')" - -# workflow-msys2-autotools: -# name: "CMake msys2 Workflows" -# uses: ./.github/workflows/msys2-auto.yml -# with: -# build_mode: "production" -# build_option: "--enable-production" diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml index 17668d07c98..1168d5af3fb 100644 --- a/.github/workflows/release-files.yml +++ b/.github/workflows/release-files.yml @@ -167,7 +167,7 @@ jobs: echo "${{ steps.get-file-base.outputs.FILE_BASE }}" > ./last-file.txt - name: Get NEWSLETTER - uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 + uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 with: name: NEWSLETTER path: ${{ github.workspace }} @@ -179,7 +179,7 @@ jobs: - name: PreRelease tag id: create_prerelease if: ${{ (inputs.use_environ == 'snapshots') }} - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 + uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4 with: tag_name: "${{ inputs.use_tag }}" prerelease: true @@ -204,7 +204,7 @@ jobs: - name: Release tag id: create_release if: ${{ (inputs.use_environ == 'release') }} - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 + uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4 with: tag_name: "${{ inputs.use_tag }}" prerelease: false diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3f072d0782a..338cac1b096 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6 + uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 with: sarif_file: results.sarif diff --git a/.github/workflows/testxpr-auto.yml b/.github/workflows/testxpr-auto.yml new file mode 100644 index 00000000000..8eceb2662b7 --- /dev/null +++ b/.github/workflows/testxpr-auto.yml @@ -0,0 +1,68 @@ +name: hdf5 TestExpress Autotools CI + +on: + workflow_call: + +permissions: + contents: read + +jobs: + build_and_test: + strategy: + matrix: + build_mode: ["production", "debug"] + include: + - build_mode: "production" + - build_mode: "debug" + + name: "Autotools ${{ matrix.build_mode }} Express Test Workflows" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + runs-on: ubuntu-latest + steps: + - name: Install Linux Dependencies + run: | + sudo apt-get 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 + sudo apt install automake autoconf libtool libtool-bin + sudo apt install libaec0 libaec-dev + echo "CC=gcc-12" >> $GITHUB_ENV + echo "CXX=g++-12" >> $GITHUB_ENV + echo "FC=gfortran-12" >> $GITHUB_ENV + + - name: Get Sources + uses: actions/checkout@v4.1.1 + + - name: Autotools Configure + shell: bash + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ matrix.build_mode }} \ + --enable-shared \ + --disable-parallel \ + --disable-cxx \ + --disable-fortran \ + --disable-java \ + --with-szlib=yes + + - name: Autotools Build + shell: bash + run: | + make -j3 + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Test + shell: bash + env: + HDF5TestExpress: 0 + run: | + cd test + make -j3 check + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/testxpr-cmake.yml b/.github/workflows/testxpr-cmake.yml new file mode 100644 index 00000000000..172c2f7e6be --- /dev/null +++ b/.github/workflows/testxpr-cmake.yml @@ -0,0 +1,66 @@ +name: hdf5 TestExpress CMake CI + +on: + workflow_call: + +permissions: + contents: read + +jobs: + build_and_test: + strategy: + matrix: + build_mode: ["Release", "Debug"] + include: + - build_mode: "Release" + - build_mode: "Debug" + + name: "CMake ${{ matrix.build_mode }} Express Test Workflows" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + runs-on: ubuntu-latest + steps: + - name: Install Linux Dependencies + run: | + sudo apt-get update + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + sudo apt install libaec0 libaec-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 + + - name: Get Sources + uses: actions/checkout@v4.1.1 + + - name: CMake Configure + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ + -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ + -DHDF5_BUILD_JAVA=OFF \ + -DHDF5_BUILD_DOC=OFF \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF_TEST_EXPRESS=0 \ + $GITHUB_WORKSPACE + + - name: CMake Build + run: cmake --build . --parallel 3 --config ${{ matrix.build_mode }} + working-directory: ${{ runner.workspace }}/build + + - name: CMake Run Tests + run: ctest . --parallel 2 -C ${{ matrix.build_mode }} -V -R H5TESTXPR + working-directory: ${{ runner.workspace }}/build + diff --git a/.github/workflows/testxpr.yml b/.github/workflows/testxpr.yml deleted file mode 100644 index 2c1f25b1ba5..00000000000 --- a/.github/workflows/testxpr.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: hdf5 TestExpress CI - -# Run TestExpress CI daily at 04:00 CDT (9:00 UTC) -on: - workflow_dispatch: - schedule: - - cron: "0 9 * * *" - -permissions: - contents: read - -jobs: - build_and_test: - strategy: - matrix: - build_sys: ["CMake", "Autotools"] - build_mode: ["Release", "production", "Debug", "debug"] - include: - - build_sys: "CMake" - build_mode: "Release" - - build_sys: "CMake" - build_mode: "Debug" - - build_sys: "Autotools" - build_mode: "production" - - build_sys: "Autotools" - build_mode: "debug" - # Exclude mismatched configurations - exclude: - - build_sys: "CMake" - build_mode: "production" - - build_sys: "CMake" - build_mode: "debug" - - build_sys: "Autotools" - build_mode: "Release" - - build_sys: "Autotools" - build_mode: "Debug" - - # Sets the job's name from the properties - name: "${{ matrix.build_sys }} ${{ matrix.build_mode }} Workflows" - - # Don't run the action if the commit message says to skip CI - if: "!contains(github.event.head_commit.message, 'skip-ci')" - - runs-on: ubuntu-latest - steps: - - name: Install Linux Dependencies - run: | - sudo apt-get 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 - - - name: Install Autotools Dependencies (Linux) - run: | - sudo apt install automake autoconf libtool libtool-bin - sudo apt install libaec0 libaec-dev - if: ${{ matrix.build_sys == 'Autotools' }} - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Get Sources - uses: actions/checkout@v4.1.1 - - ########## CMake ########### - - name: CMake Configure - shell: bash - run: | - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} \ - -DBUILD_SHARED_LIBS=ON \ - -DHDF5_ENABLE_ALL_WARNINGS=ON \ - -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ - -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ - -DHDF5_BUILD_FORTRAN=OFF \ - -DHDF5_BUILD_JAVA=OFF \ - -DHDF5_BUILD_DOC=OFF \ - -DLIBAEC_USE_LOCALCONTENT=OFF \ - -DZLIB_USE_LOCALCONTENT=OFF \ - -DHDF_TEST_EXPRESS=0 \ - $GITHUB_WORKSPACE - if: ${{ matrix.build_sys == 'CMake' }} - - - name: CMake Build - run: cmake --build . --parallel 3 --config ${{ matrix.build_mode }} - working-directory: ${{ runner.workspace }}/build - if: ${{ matrix.build_sys == 'CMake' }} - - - name: CMake Run Tests - run: ctest . --parallel 2 -C ${{ matrix.build_mode }} -V -R H5TESTXPR - working-directory: ${{ runner.workspace }}/build - if: ${{ matrix.build_sys == 'CMake' }} - - ########## autotools ########### - - name: Autotools Configure - shell: bash - run: | - sh ./autogen.sh - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - $GITHUB_WORKSPACE/configure \ - --enable-build-mode=${{ matrix.build_mode }} \ - --enable-shared \ - --disable-parallel \ - --disable-cxx \ - --disable-fortran \ - --disable-java \ - --with-szlib=yes - if: ${{ matrix.build_sys == 'Autotools' }} - - - name: Autotools Build - shell: bash - run: | - make -j3 - working-directory: ${{ runner.workspace }}/build - if: ${{ matrix.build_sys == 'Autotools' }} - - - name: Autotools Test - shell: bash - env: - HDF5TestExpress: 0 - run: | - cd test - make -j3 check - working-directory: ${{ runner.workspace }}/build - if: ${{ matrix.build_sys == 'Autotools' }} diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index 94f525be451..83302df69f8 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -841,7 +841,7 @@ HDF5_EXTERNAL_LIB_PREFIX "Use prefix for custom library naming." HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF -HDF5_SHOW_ALL_WARNINGS "Show all warnings (i.e. not suppress "noisy" ones internally)" OFF +HDF5_SHOW_ALL_WARNINGS "Show all warnings (i.e. not suppress "noisy" ones internally)" OFF HDF5_ENABLE_CODESTACK "Enable the function stack tracing (for developer debugging)." OFF HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF