From 33cbb0bf2d22d3fe1c9b0e411df2a98eafa03e75 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 09:35:33 -0500 Subject: [PATCH 01/39] Change main CI workflow to use callable workflows --- .github/workflows/cmake-ctest.yml | 2 +- .github/workflows/main-auto-spc.yml | 348 +++++++++++++++ .github/workflows/main-auto.yml | 212 +++++++++ .github/workflows/main-cmake.yml | 248 +++++++++++ .github/workflows/main.yml | 663 +--------------------------- 5 files changed, 833 insertions(+), 640 deletions(-) create mode 100644 .github/workflows/main-auto-spc.yml create mode 100644 .github/workflows/main-auto.yml create mode 100644 .github/workflows/main-cmake.yml diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index c0713dbe862..da99e7e02cc 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -1,6 +1,6 @@ name: hdf5 dev ctest runs -# Controls when the action will run. Triggers the workflow on a schedule +# Controls when the action will run. Triggers the workflow on a call on: workflow_call: inputs: diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml new file mode 100644 index 00000000000..d2a4dc642af --- /dev/null +++ b/.github/workflows/main-auto-spc.yml @@ -0,0 +1,348 @@ +name: hdf5 dev autotools CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + +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: + # + # SPECIAL AUTOTOOLS BUILDS + # + # These do not run tests and are not built into the matrix and instead + # become NEW configs as their name would clobber one of the matrix + # names (so make sure the names are UNIQUE). + # + + - name: "Ubuntu gcc Autotools v1.6 default API (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v16 + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + - name: "Ubuntu gcc Autotools v1.8 default API (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v18 + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + - name: "Ubuntu gcc Autotools v1.10 default API (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v110 + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + - name: "Ubuntu gcc Autotools v1.12 default API (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v112 + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + - name: "Ubuntu gcc Autotools v1.14 default API (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v114 + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + - name: "Ubuntu gcc Autotools no deprecated symbols (build only)" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: disable + default_api: default + szip: yes + flags: "" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + # Debug -Werror + - name: "Ubuntu gcc Autotools -Werror (build only)" + os: ubuntu-latest + cpp: enable + fortran: disable + java: enable + docs: disable + parallel: disable + mirror_vfd: disable + direct_vfd: enable + ros3_vfd: disable + deprec_sym: enable + default_api: v114 + szip: yes + flags: "CFLAGS=-Werror" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + # Production/Release -Werror + - name: "Ubuntu gcc Autotools -Werror (build only)" + os: ubuntu-latest + cpp: enable + fortran: disable + java: enable + docs: disable + parallel: disable + mirror_vfd: disable + direct_vfd: enable + ros3_vfd: disable + deprec_sym: enable + default_api: v114 + szip: yes + flags: "CFLAGS=-Werror" + thread_safety: + enabled: false + text: "" + build_mode: + text: " REL" + autotools: "production" + + # Parallel Debug -Werror + - name: "Ubuntu gcc Autotools parallel -Werror (build only)" + os: ubuntu-latest + cpp: disable + fortran: disable + java: disable + docs: disable + parallel: enable + mirror_vfd: disable + direct_vfd: enable + ros3_vfd: disable + deprec_sym: enable + default_api: v114 + flags: "CFLAGS=-Werror" + thread_safety: + enabled: false + text: "" + build_mode: + text: " DBG" + autotools: "debug" + + # Parallel production/release -Werror + - name: "Ubuntu gcc Autotools parallel -Werror (build only)" + os: ubuntu-latest + cpp: disable + fortran: disable + java: disable + docs: disable + parallel: enable + mirror_vfd: disable + direct_vfd: enable + ros3_vfd: disable + deprec_sym: enable + default_api: v114 + flags: "CFLAGS=-Werror" + thread_safety: + enabled: false + text: "" + build_mode: + text: " REL" + autotools: "production" + + # Sets the job's name from the properties + name: "${{ matrix.name }}${{ matrix.build_mode.text }}${{ matrix.thread_safety.text }}" + + # 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: + + # + # SETUP + # + + #Useful for debugging + - name: Dump matrix context + run: echo '${{ toJSON(matrix) }}' + + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + if: matrix.os == 'ubuntu-latest' + + - name: Install Autotools Dependencies (Linux) + run: | + sudo apt install automake autoconf libtool libtool-bin + sudo apt install libaec0 libaec-dev + + - name: Install Autotools Dependencies (Linux, parallel) + run: | + sudo apt install openmpi-bin openmpi-common mpi-default-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV + if: (matrix.parallel == 'enable') + + - name: Install Dependencies (macOS) + run: brew install ninja doxygen + if: matrix.os == 'macos-13' + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # + # AUTOTOOLS CONFIGURE + # + + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ matrix.build_mode.autotools }} \ + --${{ matrix.deprec_sym }}-deprecated-symbols \ + --with-default-api-version=${{ matrix.default_api }} \ + --enable-shared \ + --${{ matrix.parallel }}-parallel \ + --${{ matrix.cpp }}-cxx \ + --${{ matrix.fortran }}-fortran \ + --${{ matrix.java }}-java \ + --${{ matrix.mirror_vfd }}-mirror-vfd \ + --${{ matrix.direct_vfd }}-direct-vfd \ + --${{ matrix.ros3_vfd }}-ros3-vfd \ + --with-szlib=${{ matrix.szip }} + shell: bash + if: ! (matrix.thread_safety.enabled) + + - name: Autotools Configure (Thread-Safe) + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ matrix.build_mode.autotools }} \ + --enable-shared \ + --enable-threadsafe \ + --disable-hl \ + --${{ matrix.parallel }}-parallel \ + --${{ matrix.mirror_vfd }}-mirror-vfd \ + --${{ matrix.direct_vfd }}-direct-vfd \ + --${{ matrix.ros3_vfd }}-ros3-vfd \ + --with-szlib=${{ matrix.szip }} + shell: bash + if: (matrix.thread_safety.enabled) + + # + # BUILD + # + + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # + # INSTALL (note that this runs even when we don't run the tests) + # + + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml new file mode 100644 index 00000000000..ec9ddfbd246 --- /dev/null +++ b/.github/workflows/main-auto.yml @@ -0,0 +1,212 @@ +name: hdf5 dev autotools CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + inputs: + thread_safety: + description: "thread-safety on/off" + required: true + type: boolean + build_mode: + description: "release vs. debug build" + required: true + type: string + +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: + + # A workflow that builds the library and runs all the tests + build_and_test: + matrix: + name: + - "Ubuntu gcc Autotools" + - "Ubuntu gcc Autotools parallel (build only)" + + # This is where we list the bulk of the options for each configuration. + # The key-value pair values are usually appropriate for being CMake or + # Autotools configure values, so be aware of that. + + include: + + # Linux (Ubuntu) w/ gcc + Autotools + # + # Keep this identical to the CMake configs. Note the difference in + # the values. + - name: "Ubuntu gcc Autotools" + os: ubuntu-latest + cpp: enable + fortran: enable + java: enable + docs: disable + parallel: disable + mirror_vfd: enable + direct_vfd: enable + ros3_vfd: enable + deprec_sym: enable + default_api: v114 + szip: yes + flags: "" + run_tests: true + + # Parallel Linux (Ubuntu) w/ gcc + Autotools + # + # The GitHub runners are inadequate for running parallel HDF5 tests, + # so we catch most issues in daily testing. What we have here is just + # a compile check to make sure nothing obvious is broken. + - name: "Ubuntu gcc Autotools parallel (build only)" + os: ubuntu-latest + cpp: disable + fortran: enable + java: disable + docs: disable + parallel: enable + mirror_vfd: disable + direct_vfd: disable + ros3_vfd: disable + deprec_sym: enable + default_api: v114 + szip: yes + flags: "CC=mpicc" + run_tests: false + + # Sets the job's name from the properties + name: "${{ matrix.name }}${{ inputs.build_mode }}${{ inputs.thread_safety }}" + + # 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: + + # + # SETUP + # + + #Useful for debugging + - name: Dump matrix context + run: echo '${{ toJSON(matrix) }}' + + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + if: matrix.os == 'ubuntu-latest' + + - name: Install Autotools Dependencies (Linux) + run: | + sudo apt install automake autoconf libtool libtool-bin + sudo apt install libaec0 libaec-dev + + - name: Install Autotools Dependencies (Linux, parallel) + run: | + sudo apt install openmpi-bin openmpi-common mpi-default-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV + if: (matrix.parallel == 'enable') + + - name: Install Dependencies (macOS) + run: brew install ninja doxygen + if: matrix.os == 'macos-13' + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # + # AUTOTOOLS CONFIGURE + # + + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ inputs.build_mode }} \ + --${{ matrix.deprec_sym }}-deprecated-symbols \ + --with-default-api-version=${{ matrix.default_api }} \ + --enable-shared \ + --${{ matrix.parallel }}-parallel \ + --${{ matrix.cpp }}-cxx \ + --${{ matrix.fortran }}-fortran \ + --${{ matrix.java }}-java \ + --${{ matrix.mirror_vfd }}-mirror-vfd \ + --${{ matrix.direct_vfd }}-direct-vfd \ + --${{ matrix.ros3_vfd }}-ros3-vfd \ + --with-szlib=${{ matrix.szip }} + shell: bash + if: ! (inputs.thread_safety) + + - name: Autotools Configure (Thread-Safe) + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ inputs.build_mode }} \ + --enable-shared \ + --enable-threadsafe \ + --disable-hl \ + --${{ matrix.parallel }}-parallel \ + --${{ matrix.mirror_vfd }}-mirror-vfd \ + --${{ matrix.direct_vfd }}-direct-vfd \ + --${{ matrix.ros3_vfd }}-ros3-vfd \ + --with-szlib=${{ matrix.szip }} + shell: bash + if: (inputs.thread_safety) + + # + # BUILD + # + + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # + # RUN TESTS + # + + # NORMAL + + - name: Autotools Run Tests + run: make check -j2 + working-directory: ${{ runner.workspace }}/build + if: (matrix.run_tests) && ! (inputs.thread_safety) + + # THREAD-SAFE + + - name: Autotools Run Thread-Safe Tests + run: | + cd test + ./ttsafe + working-directory: ${{ runner.workspace }}/build + if: (matrix.run_tests) && (inputs.thread_safety) + + # + # INSTALL (note that this runs even when we don't run the tests) + # + + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml new file mode 100644 index 00000000000..9a114138e88 --- /dev/null +++ b/.github/workflows/main-cmake.yml @@ -0,0 +1,248 @@ +name: hdf5 dev cmake CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + inputs: + thread_safety: + description: "thread-safety on/off" + required: true + type: boolean + build_mode: + description: "release vs. debug build" + required: true + type: string + +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: + + # A workflow that builds the library and runs all the tests + build_and_test: + matrix: + name: + - "Windows MSVC CMake" + - "Ubuntu gcc CMake" + - "MacOS Clang CMake" + + # This is where we list the bulk of the options for each configuration. + # The key-value pair values are usually appropriate for being CMake or + # Autotools configure values, so be aware of that. + + include: + + # Windows w/ MSVC + CMake + # + # No Fortran, parallel, or VFDs that rely on POSIX things + - name: "Windows MSVC CMake" + os: windows-2022 + toolchain: "" + cpp: ON + fortran: OFF + java: ON + docs: OFF + libaecfc: ON + localaec: OFF + zlibfc: ON + localzlib: OFF + parallel: OFF + mirror_vfd: OFF + direct_vfd: OFF + ros3_vfd: OFF + generator: "-G \"Visual Studio 17 2022\" -A x64" + run_tests: true + + # Linux (Ubuntu) w/ gcc + CMake + # + # We might think about adding Clang, but MacOS already tests that + # so it's not critical + - name: "Ubuntu gcc CMake" + os: ubuntu-latest + cpp: ON + fortran: ON + java: ON + docs: ON + libaecfc: ON + localaec: OFF + zlibfc: ON + localzlib: OFF + parallel: OFF + mirror_vfd: ON + direct_vfd: ON + ros3_vfd: ON + toolchain: "config/toolchain/gcc.cmake" + generator: "-G Ninja" + run_tests: true + + + # MacOS w/ Clang + CMake + # + # We could also build with the Autotools via brew installing them, + # but that seems unnecessary + - name: "MacOS Clang CMake" + os: macos-13 + cpp: ON + fortran: OFF + java: ON + docs: OFF + libaecfc: ON + localaec: OFF + zlibfc: ON + localzlib: OFF + parallel: OFF + mirror_vfd: ON + direct_vfd: OFF + ros3_vfd: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + run_tests: true + + + + # Sets the job's name from the properties + name: "${{ matrix.name }}${{ inputs.build_mode }}${{ inputs.thread_safety }}" + + # 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: + + # + # SETUP + # + + #Useful for debugging + - name: Dump matrix context + run: echo '${{ toJSON(matrix) }}' + + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + if: matrix.os == 'ubuntu-latest' + + # CMake gets libaec from fetchcontent + + - name: Install Dependencies (Windows) + run: choco install ninja + if: matrix.os == 'windows-latest' + + - name: Install Dependencies (macOS) + run: brew install ninja doxygen + if: matrix.os == 'macos-13' + + - 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.os == 'windows-latest' + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # + # CMAKE CONFIGURE + # + + - name: CMake Configure + 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 }} \ + -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \ + -DHDF5_BUILD_CPP_LIB:BOOL=${{ matrix.cpp }} \ + -DHDF5_BUILD_FORTRAN=${{ matrix.fortran }} \ + -DHDF5_BUILD_JAVA=${{ matrix.java }} \ + -DHDF5_BUILD_DOC=${{ matrix.docs }} \ + -DBUILD_SZIP_WITH_FETCHCONTENT=${{ matrix.libaecfc }} \ + -DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \ + -DBUILD_ZLIB_WITH_FETCHCONTENT=${{ matrix.zlibfc }} \ + -DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \ + -DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \ + -DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \ + -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ + $GITHUB_WORKSPACE + shell: bash + if: (matrix.generator != 'autogen') && ! (matrix.thread_safety) + + + - name: CMake 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 }} \ + -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_THREADSAFE: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 \ + -DBUILD_SZIP_WITH_FETCHCONTENT=${{ matrix.libaecfc }} \ + -DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \ + -DBUILD_ZLIB_WITH_FETCHCONTENT=${{ matrix.zlibfc }} \ + -DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \ + -DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \ + -DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \ + -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ + $GITHUB_WORKSPACE + shell: bash + if: (matrix.generator != 'autogen') && (matrix.thread_safety) + + # + # BUILD + # + + - name: CMake Build + run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + working-directory: ${{ runner.workspace }}/build + if: (matrix.generator != 'autogen') + + # + # RUN TESTS + # + + # NORMAL + + - name: CMake Run Tests + run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V + working-directory: ${{ runner.workspace }}/build + if: (matrix.generator != 'autogen') && (matrix.run_tests) && ! (matrix.thread_safety) + + # THREAD-SAFE + + - name: CMake Run Thread-Safe Tests + run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R ttsafe + working-directory: ${{ runner.workspace }}/build + if: (matrix.generator != 'autogen') && (matrix.run_tests) && (matrix.thread_safety) + + # + # INSTALL (note that this runs even when we don't run the tests) + # diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ad1e4f366e7..0a8bee0fa63 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,642 +29,27 @@ permissions: jobs: # A workflow that builds the library and runs all the tests - build_and_test: - - strategy: - - # The current matrix has three dimensions: - # - # * config name - # * thread-safety on/off - # * release vs. debug build - # - # 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 CMake" - - "Ubuntu gcc CMake" - - "Ubuntu gcc Autotools" - - "Ubuntu gcc Autotools parallel (build only)" - - "MacOS Clang CMake" - - thread_safety: - - enabled: true - text: " TS" - - enabled: false - text: "" - - build_mode: - - text: " REL" - cmake: "Release" - autotools: "production" - - text: " DBG" - cmake: "Debug" - autotools: "debug" - - # This is where we list the bulk of the options for each configuration. - # The key-value pair values are usually appropriate for being CMake or - # Autotools configure values, so be aware of that. - - include: - - # Windows w/ MSVC + CMake - # - # No Fortran, parallel, or VFDs that rely on POSIX things - - name: "Windows MSVC CMake" - os: windows-2022 - toolchain: "" - cpp: ON - fortran: OFF - java: ON - docs: OFF - libaecfc: ON - localaec: OFF - zlibfc: ON - localzlib: OFF - parallel: OFF - mirror_vfd: OFF - direct_vfd: OFF - ros3_vfd: OFF - generator: "-G \"Visual Studio 17 2022\" -A x64" - run_tests: true - - # Linux (Ubuntu) w/ gcc + CMake - # - # We might think about adding Clang, but MacOS already tests that - # so it's not critical - - name: "Ubuntu gcc CMake" - os: ubuntu-latest - cpp: ON - fortran: ON - java: ON - docs: ON - libaecfc: ON - localaec: OFF - zlibfc: ON - localzlib: OFF - parallel: OFF - mirror_vfd: ON - direct_vfd: ON - ros3_vfd: ON - toolchain: "config/toolchain/gcc.cmake" - generator: "-G Ninja" - run_tests: true - - # Linux (Ubuntu) w/ gcc + Autotools - # - # Keep this identical to the CMake configs. Note the difference in - # the values. - - name: "Ubuntu gcc Autotools" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v114 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: true - - # Parallel Linux (Ubuntu) w/ gcc + Autotools - # - # The GitHub runners are inadequate for running parallel HDF5 tests, - # so we catch most issues in daily testing. What we have here is just - # a compile check to make sure nothing obvious is broken. - - name: "Ubuntu gcc Autotools parallel (build only)" - os: ubuntu-latest - cpp: disable - fortran: enable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: disable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - toolchain: "" - generator: "autogen" - flags: "CC=mpicc" - run_tests: false - - # MacOS w/ Clang + CMake - # - # We could also build with the Autotools via brew installing them, - # but that seems unnecessary - - name: "MacOS Clang CMake" - os: macos-13 - cpp: ON - fortran: OFF - java: ON - docs: OFF - libaecfc: ON - localaec: OFF - zlibfc: ON - localzlib: OFF - parallel: OFF - mirror_vfd: ON - direct_vfd: OFF - ros3_vfd: OFF - toolchain: "config/toolchain/clang.cmake" - generator: "-G Ninja" - run_tests: true - - - # - # SPECIAL AUTOTOOLS BUILDS - # - # These do not run tests and are not built into the matrix and instead - # become NEW configs as their name would clobber one of the matrix - # names (so make sure the names are UNIQUE). - # - - - name: "Ubuntu gcc Autotools v1.6 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v16 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.8 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v18 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.10 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v110 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.12 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v112 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.14 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v114 - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - - name: "Ubuntu gcc Autotools no deprecated symbols (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: disable - default_api: default - szip: yes - toolchain: "" - generator: "autogen" - flags: "" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - # Debug -Werror - - name: "Ubuntu gcc Autotools -Werror (build only)" - os: ubuntu-latest - cpp: enable - fortran: disable - java: enable - docs: disable - parallel: disable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - toolchain: "" - generator: "autogen" - flags: "CFLAGS=-Werror" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - # Production/Release -Werror - - name: "Ubuntu gcc Autotools -Werror (build only)" - os: ubuntu-latest - cpp: enable - fortran: disable - java: enable - docs: disable - parallel: disable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - toolchain: "" - generator: "autogen" - flags: "CFLAGS=-Werror" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " REL" - cmake: "Release" - autotools: "production" - - # Parallel Debug -Werror - - name: "Ubuntu gcc Autotools parallel -Werror (build only)" - os: ubuntu-latest - cpp: disable - fortran: disable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - toolchain: "" - generator: "autogen" - flags: "CFLAGS=-Werror" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - cmake: "Debug" - autotools: "debug" - - # Parallel production/release -Werror - - name: "Ubuntu gcc Autotools parallel -Werror (build only)" - os: ubuntu-latest - cpp: disable - fortran: disable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - toolchain: "" - generator: "autogen" - flags: "CFLAGS=-Werror" - run_tests: false - thread_safety: - enabled: false - text: "" - build_mode: - text: " REL" - cmake: "Release" - autotools: "production" - - # Sets the job's name from the properties - name: "${{ matrix.name }}${{ matrix.build_mode.text }}${{ matrix.thread_safety.text }}" - - # 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: - - # - # SETUP - # - - #Useful for debugging - - name: Dump matrix context - run: echo '${{ toJSON(matrix) }}' - - # Only CMake need ninja-build, but we just install it unilaterally - # libssl, etc. are needed for the ros3 VFD - - name: Install Linux Dependencies - run: | - sudo apt 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 - if: matrix.os == 'ubuntu-latest' - - # CMake gets libaec from fetchcontent - - name: Install Autotools Dependencies (Linux) - run: | - sudo apt install automake autoconf libtool libtool-bin - sudo apt install libaec0 libaec-dev - if: (matrix.generator == 'autogen') - - - name: Install Autotools Dependencies (Linux, parallel) - run: | - sudo apt install openmpi-bin openmpi-common mpi-default-dev - echo "CC=mpicc" >> $GITHUB_ENV - echo "FC=mpif90" >> $GITHUB_ENV - if: (matrix.generator == 'autogen') && (matrix.parallel == 'enable') - - - name: Install Dependencies (Windows) - run: choco install ninja - if: matrix.os == 'windows-latest' - - - name: Install Dependencies (macOS) - run: brew install ninja doxygen - if: matrix.os == 'macos-13' - - - 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.os == 'windows-latest' - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Get Sources - uses: actions/checkout@v3 - - # - # AUTOTOOLS CONFIGURE - # - - - name: Autotools Configure - run: | - sh ./autogen.sh - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ - --enable-build-mode=${{ matrix.build_mode.autotools }} \ - --${{ matrix.deprec_sym }}-deprecated-symbols \ - --with-default-api-version=${{ matrix.default_api }} \ - --enable-shared \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.cpp }}-cxx \ - --${{ matrix.fortran }}-fortran \ - --${{ matrix.java }}-java \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} - shell: bash - if: (matrix.generator == 'autogen') && ! (matrix.thread_safety.enabled) - - - name: Autotools Configure (Thread-Safe) - run: | - sh ./autogen.sh - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ - --enable-build-mode=${{ matrix.build_mode.autotools }} \ - --enable-shared \ - --enable-threadsafe \ - --disable-hl \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} - shell: bash - if: (matrix.generator == 'autogen') && (matrix.thread_safety.enabled) - - # - # CMAKE CONFIGURE - # - - - name: CMake Configure - run: | - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \ - ${{ matrix.generator }} \ - -DCMAKE_BUILD_TYPE=${{ matrix.build_mode.cmake }} \ - -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} \ - -DBUILD_SHARED_LIBS=ON \ - -DHDF5_ENABLE_ALL_WARNINGS=ON \ - -DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} \ - -DHDF5_BUILD_CPP_LIB:BOOL=${{ matrix.cpp }} \ - -DHDF5_BUILD_FORTRAN=${{ matrix.fortran }} \ - -DHDF5_BUILD_JAVA=${{ matrix.java }} \ - -DHDF5_BUILD_DOC=${{ matrix.docs }} \ - -DBUILD_SZIP_WITH_FETCHCONTENT=${{ matrix.libaecfc }} \ - -DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \ - -DBUILD_ZLIB_WITH_FETCHCONTENT=${{ matrix.zlibfc }} \ - -DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \ - -DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \ - -DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \ - -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ - $GITHUB_WORKSPACE - shell: bash - if: (matrix.generator != 'autogen') && ! (matrix.thread_safety.enabled) - - - - name: CMake 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=${{ matrix.build_mode.cmake }} \ - -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} \ - -DBUILD_SHARED_LIBS=ON \ - -DHDF5_ENABLE_ALL_WARNINGS=ON \ - -DHDF5_ENABLE_THREADSAFE: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 \ - -DBUILD_SZIP_WITH_FETCHCONTENT=${{ matrix.libaecfc }} \ - -DLIBAEC_USE_LOCALCONTENT=${{ matrix.localaec }} \ - -DBUILD_ZLIB_WITH_FETCHCONTENT=${{ matrix.zlibfc }} \ - -DZLIB_USE_LOCALCONTENT=${{ matrix.localzlib }} \ - -DHDF5_ENABLE_MIRROR_VFD:BOOL=${{ matrix.mirror_vfd }} \ - -DHDF5_ENABLE_DIRECT_VFD:BOOL=${{ matrix.direct_vfd }} \ - -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ - $GITHUB_WORKSPACE - shell: bash - if: (matrix.generator != 'autogen') && (matrix.thread_safety.enabled) - - # - # BUILD - # - - - name: Autotools Build - run: make -j3 - working-directory: ${{ runner.workspace }}/build - if: matrix.generator == 'autogen' - - - name: CMake Build - run: cmake --build . --parallel 3 --config ${{ matrix.build_mode.cmake }} - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') - - # - # RUN TESTS - # - - # NORMAL - - - name: Autotools Run Tests - run: make check -j2 - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator == 'autogen') && (matrix.run_tests) && ! (matrix.thread_safety.enabled) - - - name: CMake Run Tests - run: ctest . --parallel 2 -C ${{ matrix.build_mode.cmake }} -V - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') && (matrix.run_tests) && ! (matrix.thread_safety.enabled) - - # THREAD-SAFE - - - name: Autotools Run Thread-Safe Tests - run: | - cd test - ./ttsafe - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator == 'autogen') && (matrix.run_tests) && (matrix.thread_safety.enabled) - - - name: CMake Run Thread-Safe Tests - run: ctest . --parallel 2 -C ${{ matrix.build_mode.cmake }} -V -R ttsafe - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') && (matrix.run_tests) && (matrix.thread_safety.enabled) - - # - # INSTALL (note that this runs even when we don't run the tests) - # - - - name: Autotools Install - run: make install - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator == 'autogen') - - - name: Autotools Verify Install - run: make check-install - working-directory: ${{ runner.workspace }}/build - if: (matrix.generator == 'autogen') + call-workflow-special: + uses: ./.github/workflows/main-auto-spc.yml + + call-workflow-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "production" + + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "debug" + + call-workflow-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Release" + + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Debug" From 0ab8de9c9d69803cd9b7da5ac9df58d908b44ae0 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 10:53:13 -0500 Subject: [PATCH 02/39] Fix special autotools --- .github/workflows/main-auto-spc.yml | 815 +++++++++++++++++++--------- .github/workflows/main.yml | 36 +- 2 files changed, 567 insertions(+), 284 deletions(-) diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index d2a4dc642af..4d565b66114 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -19,238 +19,255 @@ jobs: # names (so make sure the names are UNIQUE). # - - name: "Ubuntu gcc Autotools v1.6 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v16 - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.8 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v18 - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.10 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v110 - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.12 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v112 - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - - name: "Ubuntu gcc Autotools v1.14 default API (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v114 - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" + build_v1.6: + name: "Ubuntu gcc DBG Autotools v1.6 default API (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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: "Ubuntu gcc Autotools no deprecated symbols (build only)" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: disable - default_api: default - szip: yes - flags: "" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - # Debug -Werror - - name: "Ubuntu gcc Autotools -Werror (build only)" - os: ubuntu-latest - cpp: enable - fortran: disable - java: enable - docs: disable - parallel: disable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - flags: "CFLAGS=-Werror" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - # Production/Release -Werror - - name: "Ubuntu gcc Autotools -Werror (build only)" - os: ubuntu-latest - cpp: enable - fortran: disable - java: enable - docs: disable - parallel: disable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - flags: "CFLAGS=-Werror" - thread_safety: - enabled: false - text: "" - build_mode: - text: " REL" - autotools: "production" - - # Parallel Debug -Werror - - name: "Ubuntu gcc Autotools parallel -Werror (build only)" - os: ubuntu-latest - cpp: disable - fortran: disable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - flags: "CFLAGS=-Werror" - thread_safety: - enabled: false - text: "" - build_mode: - text: " DBG" - autotools: "debug" - - # Parallel production/release -Werror - - name: "Ubuntu gcc Autotools parallel -Werror (build only)" - os: ubuntu-latest - cpp: disable - fortran: disable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: enable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - flags: "CFLAGS=-Werror" - thread_safety: - enabled: false - text: "" - build_mode: - text: " REL" - autotools: "production" - - # Sets the job's name from the properties - name: "${{ matrix.name }}${{ matrix.build_mode.text }}${{ matrix.thread_safety.text }}" - - # 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 + - name: Install Autotools Dependencies (Linux) + run: | + sudo apt install automake autoconf libtool libtool-bin + sudo apt install libaec0 libaec-dev + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v16 \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_v1.8: + name: "Ubuntu gcc DBG Autotools v1.8 default API (build only)" + runs-on: ubuntu-latest steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v18 \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash - # + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_v1.10: + name: "Ubuntu gcc DBG Autotools v1.10 default API (build only)" + runs-on: ubuntu-latest + steps: # SETUP - # + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v110 \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_v1.12: + name: "Ubuntu gcc DBG Autotools v1.12 default API (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v112 \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build - #Useful for debugging - - name: Dump matrix context - run: echo '${{ toJSON(matrix) }}' + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + build_v1.14: + name: "Ubuntu gcc DBG Autotools v1.14 default API (build only)" + runs-on: ubuntu-latest + steps: + # SETUP # Only CMake need ninja-build, but we just install it unilaterally # libssl, etc. are needed for the ros3 VFD - name: Install Linux Dependencies @@ -262,83 +279,346 @@ jobs: echo "CC=gcc-12" >> $GITHUB_ENV echo "CXX=g++-12" >> $GITHUB_ENV echo "FC=gfortran-12" >> $GITHUB_ENV - if: matrix.os == 'ubuntu-latest' - name: Install Autotools Dependencies (Linux) run: | sudo apt install automake autoconf libtool libtool-bin sudo apt install libaec0 libaec-dev - - name: Install Autotools Dependencies (Linux, parallel) + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_no_deprecated: + - name: "Ubuntu gcc Autotools no deprecated symbols (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 openmpi-bin openmpi-common mpi-default-dev - echo "CC=mpicc" >> $GITHUB_ENV - echo "FC=mpif90" >> $GITHUB_ENV - if: (matrix.parallel == 'enable') - - - name: Install Dependencies (macOS) - run: brew install ninja doxygen - if: matrix.os == 'macos-13' - + sudo apt install automake autoconf libtool libtool-bin + sudo apt install libaec0 libaec-dev + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources uses: actions/checkout@v3 - # # AUTOTOOLS CONFIGURE - # + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --disable-deprecated-symbols \ + --with-default-api-version=default \ + --enable-shared \ + --disable-parallel \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes + shell: bash + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_debug_werror: + - name: "Ubuntu gcc DBG Autotools -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE - name: Autotools Configure run: | sh ./autogen.sh mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ - --enable-build-mode=${{ matrix.build_mode.autotools }} \ - --${{ matrix.deprec_sym }}-deprecated-symbols \ - --with-default-api-version=${{ matrix.default_api }} \ + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ --enable-shared \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.cpp }}-cxx \ - --${{ matrix.fortran }}-fortran \ - --${{ matrix.java }}-java \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} + --disable-parallel \ + --enable-cxx \ + --disable-fortran \ + --enable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + --with-szlib=yes shell: bash - if: ! (matrix.thread_safety.enabled) - - name: Autotools Configure (Thread-Safe) + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_release_werror: + - name: "Ubuntu gcc REL Autotools -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure run: | sh ./autogen.sh mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ - --enable-build-mode=${{ matrix.build_mode.autotools }} \ + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=production \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ --enable-shared \ - --enable-threadsafe \ - --disable-hl \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} + --disable-parallel \ + --enable-cxx \ + --disable-fortran \ + --enable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + --with-szlib=yes shell: bash - if: (matrix.thread_safety.enabled) - # # BUILD - # + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_parallel_debug_werror: + - name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --enable-parallel \ + --disable-cxx \ + --disable-fortran \ + --disable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + shell: bash + # BUILD - name: Autotools Build run: make -j3 working-directory: ${{ runner.workspace }}/build - # # INSTALL (note that this runs even when we don't run the tests) - # + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_parallel_release_werror: + - name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=production \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --enable-parallel \ + --disable-cxx \ + --disable-fortran \ + --disable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) - name: Autotools Install run: make install working-directory: ${{ runner.workspace }}/build @@ -346,3 +626,4 @@ jobs: - name: Autotools Verify Install run: make check-install working-directory: ${{ runner.workspace }}/build + diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0a8bee0fa63..97e6377444a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,23 +33,25 @@ jobs: uses: ./.github/workflows/main-auto-spc.yml call-workflow-autotools: - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: true - build_mode: "production" + steps: + - uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "production" - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: false - build_mode: "debug" + - uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "debug" call-workflow-cmake: - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: true - build_mode: "Release" - - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: false - build_mode: "Debug" + steps: + - uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Release" + + - uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Debug" From 96ae0eda5702e7c54b27bbd5ad93a069a73e6977 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 10:59:30 -0500 Subject: [PATCH 03/39] Change job names --- .github/workflows/main-auto-spc.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index 4d565b66114..c5d59e8fd25 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -19,7 +19,7 @@ jobs: # names (so make sure the names are UNIQUE). # - build_v1.6: + build_v1_6: name: "Ubuntu gcc DBG Autotools v1.6 default API (build only)" runs-on: ubuntu-latest steps: @@ -80,7 +80,7 @@ jobs: run: make check-install working-directory: ${{ runner.workspace }}/build - build_v1.8: + build_v1_8: name: "Ubuntu gcc DBG Autotools v1.8 default API (build only)" runs-on: ubuntu-latest steps: @@ -141,7 +141,7 @@ jobs: run: make check-install working-directory: ${{ runner.workspace }}/build - build_v1.10: + build_v1_10: name: "Ubuntu gcc DBG Autotools v1.10 default API (build only)" runs-on: ubuntu-latest steps: @@ -202,7 +202,7 @@ jobs: run: make check-install working-directory: ${{ runner.workspace }}/build - build_v1.12: + build_v1_12: name: "Ubuntu gcc DBG Autotools v1.12 default API (build only)" runs-on: ubuntu-latest steps: @@ -263,7 +263,7 @@ jobs: run: make check-install working-directory: ${{ runner.workspace }}/build - build_v1.14: + build_v1_14: name: "Ubuntu gcc DBG Autotools v1.14 default API (build only)" runs-on: ubuntu-latest steps: From c8b6eaea59b51f7e2279fb9599dbff2c1214d460 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:01:24 -0500 Subject: [PATCH 04/39] Correct name syntax --- .github/workflows/main-auto-spc.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index c5d59e8fd25..6ffc10ddd73 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -325,7 +325,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_no_deprecated: - - name: "Ubuntu gcc Autotools no deprecated symbols (build only)" + name: "Ubuntu gcc Autotools no deprecated symbols (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -386,7 +386,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_debug_werror: - - name: "Ubuntu gcc DBG Autotools -Werror (build only)" + name: "Ubuntu gcc DBG Autotools -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -447,7 +447,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_release_werror: - - name: "Ubuntu gcc REL Autotools -Werror (build only)" + name: "Ubuntu gcc REL Autotools -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -508,7 +508,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_parallel_debug_werror: - - name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" + name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -568,7 +568,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_parallel_release_werror: - - name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" + name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP From d698b5a51a9b0d852c3126d40cb5881d0ad60802 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:03:44 -0500 Subject: [PATCH 05/39] Fix job syntax --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 97e6377444a..416d6ac9bbd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,25 +32,25 @@ jobs: call-workflow-special: uses: ./.github/workflows/main-auto-spc.yml - call-workflow-autotools: - steps: + call-release-autotools: - uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" + call-debug-autotools: - uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" - call-workflow-cmake: - steps: + call-release-cmake: - uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" + call-debug-autotools: - uses: ./.github/workflows/main-cmake.yml with: thread_safety: false From 3fd150a9cabcb7c414e36abac0712764f670e562 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:04:36 -0500 Subject: [PATCH 06/39] correct job name --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 416d6ac9bbd..8dbca75cc64 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,7 +50,7 @@ jobs: thread_safety: true build_mode: "Release" - call-debug-autotools: + call-debug-cmake: - uses: ./.github/workflows/main-cmake.yml with: thread_safety: false From 9efc0686ec40eb1b1daa2ff80128b9e51e076ac9 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:07:35 -0500 Subject: [PATCH 07/39] Correct syntax --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8dbca75cc64..b417139b05d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,25 +33,25 @@ jobs: uses: ./.github/workflows/main-auto-spc.yml call-release-autotools: - - uses: ./.github/workflows/main-auto.yml + uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" call-debug-autotools: - - uses: ./.github/workflows/main-auto.yml + uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" call-release-cmake: - - uses: ./.github/workflows/main-cmake.yml + uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" call-debug-cmake: - - uses: ./.github/workflows/main-cmake.yml + uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" From e04810ebe1844a22cebb15744dd97810bce60271 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:08:20 -0500 Subject: [PATCH 08/39] fix with for uses syntax --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b417139b05d..75a806ad022 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,24 +34,24 @@ jobs: call-release-autotools: uses: ./.github/workflows/main-auto.yml - with: + with: thread_safety: true build_mode: "production" call-debug-autotools: uses: ./.github/workflows/main-auto.yml - with: + with: thread_safety: false build_mode: "debug" call-release-cmake: uses: ./.github/workflows/main-cmake.yml - with: + with: thread_safety: true build_mode: "Release" call-debug-cmake: uses: ./.github/workflows/main-cmake.yml - with: + with: thread_safety: false build_mode: "Debug" From 6e6364a70d585397fcfbbc45d0e257765f3c7e7d Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:17:46 -0500 Subject: [PATCH 09/39] fix matrix syntax --- .github/workflows/main-auto.yml | 10 +++++++++- .github/workflows/main-cmake.yml | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index ec9ddfbd246..e05743372bf 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -23,7 +23,15 @@ jobs: # A workflow that builds the library and runs all the tests build_and_test: - matrix: + 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: - "Ubuntu gcc Autotools" - "Ubuntu gcc Autotools parallel (build only)" diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index 9a114138e88..ebd383d4a47 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -23,7 +23,15 @@ jobs: # A workflow that builds the library and runs all the tests build_and_test: - matrix: + 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 CMake" - "Ubuntu gcc CMake" From d0de4d8991af7b0f886724a092e096dc51b19049 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 11:26:30 -0500 Subject: [PATCH 10/39] Try if syntax --- .github/workflows/main-auto.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index e05743372bf..23adb862d4b 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -159,7 +159,7 @@ jobs: --${{ matrix.ros3_vfd }}-ros3-vfd \ --with-szlib=${{ matrix.szip }} shell: bash - if: ! (inputs.thread_safety) + if: "! (inputs.thread_safety)" - name: Autotools Configure (Thread-Safe) run: | From 21d5d62b172e3dce208ffaa52eaa6bdf53103f7f Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 12:37:04 -0500 Subject: [PATCH 11/39] Split out parallel special workflows --- .github/workflows/main-auto-par.yml | 138 ++++++++++++++++++++++++++++ .github/workflows/main-auto-spc.yml | 120 ------------------------ 2 files changed, 138 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/main-auto-par.yml diff --git a/.github/workflows/main-auto-par.yml b/.github/workflows/main-auto-par.yml new file mode 100644 index 00000000000..7ca877a22a2 --- /dev/null +++ b/.github/workflows/main-auto-par.yml @@ -0,0 +1,138 @@ +name: hdf5 dev autotools CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + +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: + # + # SPECIAL AUTOTOOLS BUILDS + # + # These do not run tests and are not built into the matrix and instead + # become NEW configs as their name would clobber one of the matrix + # names (so make sure the names are UNIQUE). + # + + build_parallel_debug_werror: + name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + sudo apt install openmpi-bin openmpi-common mpi-default-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=debug \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --enable-parallel \ + --disable-cxx \ + --disable-fortran \ + --disable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + + build_parallel_release_werror: + name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" + runs-on: ubuntu-latest + steps: + # SETUP + # Only CMake need ninja-build, but we just install it unilaterally + # libssl, etc. are needed for the ros3 VFD + - name: Install Linux Dependencies + run: | + sudo apt 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 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ + --enable-build-mode=production \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --enable-parallel \ + --disable-cxx \ + --disable-fortran \ + --disable-java \ + --disable-mirror-vfd \ + --enable-direct-vfd \ + --disable-ros3-vfd \ + shell: bash + + # BUILD + - name: Autotools Build + run: make -j3 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build + diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index 6ffc10ddd73..d2cf56fc66a 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -507,123 +507,3 @@ jobs: run: make check-install working-directory: ${{ runner.workspace }}/build - build_parallel_debug_werror: - name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" - runs-on: ubuntu-latest - steps: - # SETUP - # Only CMake need ninja-build, but we just install it unilaterally - # libssl, etc. are needed for the ros3 VFD - - name: Install Linux Dependencies - run: | - sudo apt 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 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Get Sources - uses: actions/checkout@v3 - - # AUTOTOOLS CONFIGURE - - name: Autotools Configure - run: | - sh ./autogen.sh - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ - --enable-build-mode=debug \ - --enable-deprecated-symbols \ - --with-default-api-version=v114 \ - --enable-shared \ - --enable-parallel \ - --disable-cxx \ - --disable-fortran \ - --disable-java \ - --disable-mirror-vfd \ - --enable-direct-vfd \ - --disable-ros3-vfd \ - shell: bash - - # BUILD - - name: Autotools Build - run: make -j3 - working-directory: ${{ runner.workspace }}/build - - # INSTALL (note that this runs even when we don't run the tests) - - name: Autotools Install - run: make install - working-directory: ${{ runner.workspace }}/build - - - name: Autotools Verify Install - run: make check-install - working-directory: ${{ runner.workspace }}/build - - build_parallel_release_werror: - name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" - runs-on: ubuntu-latest - steps: - # SETUP - # Only CMake need ninja-build, but we just install it unilaterally - # libssl, etc. are needed for the ros3 VFD - - name: Install Linux Dependencies - run: | - sudo apt 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 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Get Sources - uses: actions/checkout@v3 - - # AUTOTOOLS CONFIGURE - - name: Autotools Configure - run: | - sh ./autogen.sh - mkdir "${{ runner.workspace }}/build" - cd "${{ runner.workspace }}/build" - CFLAGS=-Werror $GITHUB_WORKSPACE/configure \ - --enable-build-mode=production \ - --enable-deprecated-symbols \ - --with-default-api-version=v114 \ - --enable-shared \ - --enable-parallel \ - --disable-cxx \ - --disable-fortran \ - --disable-java \ - --disable-mirror-vfd \ - --enable-direct-vfd \ - --disable-ros3-vfd \ - shell: bash - - # BUILD - - name: Autotools Build - run: make -j3 - working-directory: ${{ runner.workspace }}/build - - # INSTALL (note that this runs even when we don't run the tests) - - name: Autotools Install - run: make install - working-directory: ${{ runner.workspace }}/build - - - name: Autotools Verify Install - run: make check-install - working-directory: ${{ runner.workspace }}/build - From bd3fb384a06a6ea36ccd59071525a68165a2f85e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 12:47:47 -0500 Subject: [PATCH 12/39] Add parallel workflow --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 75a806ad022..3e349597cfd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,10 +28,12 @@ permissions: # run in parallel. jobs: - # A workflow that builds the library and runs all the tests call-workflow-special: uses: ./.github/workflows/main-auto-spc.yml + call-parallel-special: + uses: ./.github/workflows/main-auto-par.yml + call-release-autotools: uses: ./.github/workflows/main-auto.yml with: From ed0e07fa17db3c060adea734e1c43c0dd7a801ec Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 13:47:10 -0500 Subject: [PATCH 13/39] Fix parallel and add intel --- .github/workflows/intel-auto.yml | 92 ++++++++++++++++++++++++++++ .github/workflows/intel-cmake.yml | 85 +++++++++++++++++++++++++ .github/workflows/linux-icx-auto.yml | 53 ---------------- .github/workflows/linux-icx.yml | 68 -------------------- .github/workflows/main-auto-par.yml | 9 +-- .github/workflows/main-auto.yml | 16 +---- .github/workflows/main-cmake.yml | 13 ++-- .github/workflows/main.yml | 12 ++++ 8 files changed, 199 insertions(+), 149 deletions(-) create mode 100644 .github/workflows/intel-auto.yml create mode 100644 .github/workflows/intel-cmake.yml delete mode 100644 .github/workflows/linux-icx-auto.yml delete mode 100644 .github/workflows/linux-icx.yml diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml new file mode 100644 index 00000000000..eeeb70414c4 --- /dev/null +++ b/.github/workflows/intel-auto.yml @@ -0,0 +1,92 @@ +name: hdf5 dev autotools icx CI + +on: + workflow_call: + inputs: + thread_safety: + description: "thread-safety on/off" + required: true + type: boolean + build_mode: + description: "release vs. debug build" + required: true + type: string + +permissions: + contents: read + +jobs: + Autotools_build_and_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install autoconf automake libtool libtool-bin libaec-dev + - name: Add oneAPI to apt + shell: bash + run: | + cd /tmp + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main" + + - name: Install oneAPI dpcpp and fortran compiler + shell: bash + run: | + sudo apt update + sudo apt install -y intel-oneapi-compiler-dpcpp-cpp + sudo apt install -y intel-oneapi-compiler-fortran + sudo apt install -y intel-oneapi-mpi-devel + sudo apt-get install doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + echo "CC=icx" >> $GITHUB_ENV + echo "CXX=icpx" >> $GITHUB_ENV + echo "FC=ifx" >> $GITHUB_ENV + + - name: Install oneAPI MKL library + shell: bash + run: | + sudo apt install -y intel-oneapi-mkl-devel + + - name: Autotools Configure + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ inputs.build_mode }} \ + --enable-shared \ + + + # BUILD + - name: Autotools Build + run: | + source /opt/intel/oneapi/setvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + make -j3 + working-directory: ${{ runner.workspace }}/build + + # RUN TESTS + # NORMAL + - name: Autotools Run Tests + run: | + source /opt/intel/oneapi/setvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + export SYCL_DEVICE_FILTER=opencl.cpu + make check -j2 + working-directory: ${{ runner.workspace }}/build + + # INSTALL (note that this runs even when we don't run the tests) + - name: Autotools Install + run: make install + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Verify Install + run: make check-install + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml new file mode 100644 index 00000000000..72ebfd0e5c3 --- /dev/null +++ b/.github/workflows/intel-cmake.yml @@ -0,0 +1,85 @@ +name: hdf5 dev CMake icx CI + +# Controls when the action will run. Triggers the workflow on a call +on: + workflow_call: + inputs: + thread_safety: + description: "thread-safety on/off" + required: true + type: boolean + build_mode: + description: "release vs. debug build" + required: true + type: string + +permissions: + contents: read + +jobs: + Intel_build_and_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: add oneAPI to apt + shell: bash + run: | + cd /tmp + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main" + + - name: Install Linux Dependencies + run: | + sudo apt update + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + + - name: install oneAPI dpcpp and fortran compiler + shell: bash + run: | + sudo apt update + sudo apt install -y intel-oneapi-compiler-dpcpp-cpp + sudo apt install -y intel-oneapi-compiler-fortran + + - name: install oneAPI MKL library + shell: bash + run: | + sudo apt install -y intel-oneapi-mkl-devel + + - name: CMake Configure with icx + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja\ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_TOOLCHAIN_FILE=config/toolchain/intel.cmake \ + -DMKL_ROOT="/opt/intel/oneapi/mkl/latest" \ + -DTBB_ROOT="/opt/intel/oneapi/tbb/latest" \ + -DBUILD_SZIP_WITH_FETCHCONTENT=ON \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DBUILD_ZLIB_WITH_FETCHCONTENT=ON \ + -DZLIB_USE_LOCALCONTENT=OFF \ + $GITHUB_WORKSPACE + + # BUILD + - name: CMake Build + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + working-directory: ${{ runner.workspace }}/build + + # RUN TESTS + - name: CMake Run Tests + shell: bash + run: | + source /opt/intel/oneapi/setvars.sh + export SYCL_DEVICE_FILTER=opencl.cpu + ctest . --parallel 2 -C ${{ inputs.build_mode }} -V + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/linux-icx-auto.yml b/.github/workflows/linux-icx-auto.yml deleted file mode 100644 index 4a2966cdab5..00000000000 --- a/.github/workflows/linux-icx-auto.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: linux autotools icx - -on: - workflow_dispatch: - schedule: - - cron: "6 0 * * *" - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Install Dependencies - run: | - sudo apt-get update - sudo apt-get install autoconf automake libtool libtool-bin libaec-dev - - name: Add oneAPI to apt - shell: bash - run: | - cd /tmp - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main" - - - name: Install oneAPI dpcpp and fortran compiler - shell: bash - run: | - sudo apt update - sudo apt install -y intel-oneapi-compiler-dpcpp-cpp - sudo apt install -y intel-oneapi-compiler-fortran - sudo apt install -y intel-oneapi-mpi-devel - - - name: Install oneAPI MKL library - shell: bash - run: | - sudo apt install -y intel-oneapi-mkl-devel - - - name: Test parallel - shell: bash - run: | - source /opt/intel/oneapi/setvars.sh - export PATH=$PATH:/opt/intel/oneapi/mpi/2021.10.0/bin:/opt/intel/oneapi/compiler/2023.2.1/linux/bin - ./autogen.sh - ./configure --disable-fortran --disable-parallel CXX="$(which mpiicpc) -cc=$(which icpx)" CC="$(which mpiicc) -cc=$(which icx)" FC="$(which mpiifort) -fc=$(which ifx)" LDFLAGS="-L/opt/intel/oneapi/mpi/2021.10.0/lib -L/opt/intel/oneapi/mpi/2021.10.0/lib/release/" - make -j - export SYCL_DEVICE_FILTER=opencl.cpu - make check -j - sudo make install - sudo make uninstall diff --git a/.github/workflows/linux-icx.yml b/.github/workflows/linux-icx.yml deleted file mode 100644 index 58615d06ed1..00000000000 --- a/.github/workflows/linux-icx.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: linux CMake icx - -on: - workflow_dispatch: - schedule: - - cron: "6 0 * * *" - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: add oneAPI to apt - shell: bash - run: | - cd /tmp - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main" - - - name: install oneAPI dpcpp and fortran compiler - shell: bash - run: | - sudo apt update - sudo apt install -y intel-oneapi-compiler-dpcpp-cpp - sudo apt install -y intel-oneapi-compiler-fortran - sudo apt install -y intel-oneapi-mpi-devel - - - name: install oneAPI MKL library - shell: bash - run: | - sudo apt install -y intel-oneapi-mkl-devel - - - name: configure - shell: bash - run: | - source /opt/intel/oneapi/setvars.sh - export PATH=$PATH:/opt/intel/oneapi/mpi/2021.10.0/bin:/opt/intel/oneapi/compiler/2023.2.1/linux/bin - cmake -S . -B build \ - -DCMAKE_BUILD_TYPE="RelWithDebInfo" \ - -DCMAKE_INSTALL_PREFIX=install \ - -DHDF5_BUILD_FORTRAN=OFF \ - -DHDF5_ENABLE_PARALLEL=OFF \ - -DHDF5_BUILD_HL_LIB=ON \ - -DCMAKE_CXX_COMPILER=dpcpp \ - -DCMAKE_C_COMPILER=icx \ - -DCMAKE_Fortran_COMPILER=ifx \ - -DMKL_ROOT="/opt/intel/oneapi/mkl/latest" \ - -DTBB_ROOT="/opt/intel/oneapi/tbb/latest" \ - -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF - - - name: build - shell: bash - run: | - source /opt/intel/oneapi/setvars.sh - cmake --build build - - - name: test - shell: bash - run: | - source /opt/intel/oneapi/setvars.sh - export SYCL_DEVICE_FILTER=opencl.cpu - ctest --test-dir build --output-on-failure \ No newline at end of file diff --git a/.github/workflows/main-auto-par.yml b/.github/workflows/main-auto-par.yml index 7ca877a22a2..f0b92ce7390 100644 --- a/.github/workflows/main-auto-par.yml +++ b/.github/workflows/main-auto-par.yml @@ -89,14 +89,11 @@ jobs: 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 + sudo apt install openmpi-bin openmpi-common mpi-default-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 23adb862d4b..233c2689370 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -22,7 +22,7 @@ permissions: jobs: # A workflow that builds the library and runs all the tests - build_and_test: + Autotools_build_and_test: strategy: # The current matrix has one dimensions: # @@ -136,10 +136,7 @@ jobs: - name: Get Sources uses: actions/checkout@v3 - # # AUTOTOOLS CONFIGURE - # - - name: Autotools Configure run: | sh ./autogen.sh @@ -179,27 +176,19 @@ jobs: shell: bash if: (inputs.thread_safety) - # # BUILD - # - - name: Autotools Build run: make -j3 working-directory: ${{ runner.workspace }}/build - # # RUN TESTS - # - # NORMAL - - name: Autotools Run Tests run: make check -j2 working-directory: ${{ runner.workspace }}/build if: (matrix.run_tests) && ! (inputs.thread_safety) # THREAD-SAFE - - name: Autotools Run Thread-Safe Tests run: | cd test @@ -207,10 +196,7 @@ jobs: working-directory: ${{ runner.workspace }}/build if: (matrix.run_tests) && (inputs.thread_safety) - # # INSTALL (note that this runs even when we don't run the tests) - # - - name: Autotools Install run: make install working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index ebd383d4a47..200af6ccffa 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -1,4 +1,4 @@ -name: hdf5 dev cmake CI +name: hdf5 dev CMake CI # Controls when the action will run. Triggers the workflow on a call on: @@ -22,7 +22,7 @@ permissions: jobs: # A workflow that builds the library and runs all the tests - build_and_test: + CMake_build_and_test: strategy: # The current matrix has one dimensions: # @@ -193,7 +193,7 @@ jobs: -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ $GITHUB_WORKSPACE shell: bash - if: (matrix.generator != 'autogen') && ! (matrix.thread_safety) + if: "! (matrix.thread_safety)" - name: CMake Configure (Thread-Safe) @@ -222,7 +222,7 @@ jobs: -DHDF5_ENABLE_ROS3_VFD:BOOL=${{ matrix.ros3_vfd }} \ $GITHUB_WORKSPACE shell: bash - if: (matrix.generator != 'autogen') && (matrix.thread_safety) + if: (matrix.thread_safety) # # BUILD @@ -231,7 +231,6 @@ jobs: - name: CMake Build run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }} working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') # # RUN TESTS @@ -242,14 +241,14 @@ jobs: - name: CMake Run Tests run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') && (matrix.run_tests) && ! (matrix.thread_safety) + if: (matrix.run_tests) && ! (matrix.thread_safety) # THREAD-SAFE - name: CMake Run Thread-Safe Tests run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R ttsafe working-directory: ${{ runner.workspace }}/build - if: (matrix.generator != 'autogen') && (matrix.run_tests) && (matrix.thread_safety) + if: (matrix.run_tests) && (matrix.thread_safety) # # INSTALL (note that this runs even when we don't run the tests) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3e349597cfd..6efe9ac1ec7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,6 +46,12 @@ jobs: thread_safety: false build_mode: "debug" + call-release-auto-intel: + uses: ./.github/workflows/intel-auto.yml + with: + thread_safety: true + build_mode: "production" + call-release-cmake: uses: ./.github/workflows/main-cmake.yml with: @@ -57,3 +63,9 @@ jobs: with: thread_safety: false build_mode: "Debug" + + call-release-cmake-intel: + uses: ./.github/workflows/intel-cmake.yml + with: + thread_safety: true + build_mode: "Release" From 0cc8e5351fc895368ede7b61b6912ce73d3c33d5 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 13:59:33 -0500 Subject: [PATCH 14/39] Correct configure command syntax and name --- .github/workflows/intel-cmake.yml | 2 +- .github/workflows/main-auto.yml | 2 +- .github/workflows/main-cmake.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index 72ebfd0e5c3..ddac9827891 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -56,7 +56,7 @@ jobs: export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" - cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja\ + cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja \ -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ -DCMAKE_TOOLCHAIN_FILE=config/toolchain/intel.cmake \ -DMKL_ROOT="/opt/intel/oneapi/mkl/latest" \ diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 233c2689370..5b9aff874bd 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -84,7 +84,7 @@ jobs: run_tests: false # Sets the job's name from the properties - name: "${{ matrix.name }}${{ inputs.build_mode }}${{ inputs.thread_safety }}" + name: "${{ matrix.name }}${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index 200af6ccffa..6a27698d17b 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -112,7 +112,7 @@ jobs: # Sets the job's name from the properties - name: "${{ matrix.name }}${{ inputs.build_mode }}${{ inputs.thread_safety }}" + name: "${{ matrix.name }}${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" From c689f0b6103abd3996595ad329a51be96a5da4bd Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 14:50:39 -0500 Subject: [PATCH 15/39] Add ifortvars.sh for fortran --- .github/workflows/intel-auto.yml | 17 +++++++++++++++-- .github/workflows/intel-cmake.yml | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml index eeeb70414c4..8757ab16e5a 100644 --- a/.github/workflows/intel-auto.yml +++ b/.github/workflows/intel-auto.yml @@ -55,6 +55,7 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin sh ./autogen.sh mkdir "${{ runner.workspace }}/build" @@ -68,6 +69,7 @@ jobs: - name: Autotools Build run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin make -j3 working-directory: ${{ runner.workspace }}/build @@ -77,6 +79,7 @@ jobs: - name: Autotools Run Tests run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin export SYCL_DEVICE_FILTER=opencl.cpu make check -j2 @@ -84,9 +87,19 @@ jobs: # INSTALL (note that this runs even when we don't run the tests) - name: Autotools Install - run: make install + run: | + source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + export SYCL_DEVICE_FILTER=opencl.cpu + make install working-directory: ${{ runner.workspace }}/build - name: Autotools Verify Install - run: make check-install + run: | + source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh + export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin + export SYCL_DEVICE_FILTER=opencl.cpu + make check-install working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index ddac9827891..1453f122052 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -53,6 +53,7 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" @@ -72,6 +73,7 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh cmake --build . --parallel 3 --config ${{ inputs.build_mode }} working-directory: ${{ runner.workspace }}/build @@ -80,6 +82,7 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh + source /opt/intel/oneapi/ifortvars.sh export SYCL_DEVICE_FILTER=opencl.cpu ctest . --parallel 2 -C ${{ inputs.build_mode }} -V working-directory: ${{ runner.workspace }}/build From b36763579c8acd4f7c5b29b917fca38acf02bee3 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 15:01:10 -0500 Subject: [PATCH 16/39] Remove unknown file --- .github/workflows/intel-auto.yml | 5 ----- .github/workflows/intel-cmake.yml | 3 --- 2 files changed, 8 deletions(-) diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml index 8757ab16e5a..dac525948d2 100644 --- a/.github/workflows/intel-auto.yml +++ b/.github/workflows/intel-auto.yml @@ -55,7 +55,6 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin sh ./autogen.sh mkdir "${{ runner.workspace }}/build" @@ -69,7 +68,6 @@ jobs: - name: Autotools Build run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin make -j3 working-directory: ${{ runner.workspace }}/build @@ -79,7 +77,6 @@ jobs: - name: Autotools Run Tests run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin export SYCL_DEVICE_FILTER=opencl.cpu make check -j2 @@ -89,7 +86,6 @@ jobs: - name: Autotools Install run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin export SYCL_DEVICE_FILTER=opencl.cpu make install @@ -98,7 +94,6 @@ jobs: - name: Autotools Verify Install run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin export SYCL_DEVICE_FILTER=opencl.cpu make check-install diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index 1453f122052..ddac9827891 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -53,7 +53,6 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" @@ -73,7 +72,6 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh cmake --build . --parallel 3 --config ${{ inputs.build_mode }} working-directory: ${{ runner.workspace }}/build @@ -82,7 +80,6 @@ jobs: shell: bash run: | source /opt/intel/oneapi/setvars.sh - source /opt/intel/oneapi/ifortvars.sh export SYCL_DEVICE_FILTER=opencl.cpu ctest . --parallel 2 -C ${{ inputs.build_mode }} -V working-directory: ${{ runner.workspace }}/build From efddcc3d2ae2b8a40599d77e600d176b8738c2ee Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 11 Sep 2023 15:38:53 -0500 Subject: [PATCH 17/39] disable Intel fortran tests until path fixed --- .github/workflows/intel-auto.yml | 2 +- .github/workflows/intel-cmake.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml index dac525948d2..540b5379da1 100644 --- a/.github/workflows/intel-auto.yml +++ b/.github/workflows/intel-auto.yml @@ -62,7 +62,7 @@ jobs: $GITHUB_WORKSPACE/configure \ --enable-build-mode=${{ inputs.build_mode }} \ --enable-shared \ - + --disable-fortran # BUILD - name: Autotools Build diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index ddac9827891..16515f4d4ea 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -65,6 +65,7 @@ jobs: -DLIBAEC_USE_LOCALCONTENT=OFF \ -DBUILD_ZLIB_WITH_FETCHCONTENT=ON \ -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_BUILD_FORTRAN=OFF \ $GITHUB_WORKSPACE # BUILD From 0e2a79f9a87e210cf7a5fcf7703a7ba42e0b244e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 08:21:38 -0500 Subject: [PATCH 18/39] Add other option combos --- .github/workflows/main.yml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6efe9ac1ec7..d02eedacbc2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,7 +34,13 @@ jobs: call-parallel-special: uses: ./.github/workflows/main-auto-par.yml - call-release-autotools: + call--debug-thread-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "debug" + + call-release-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true @@ -46,13 +52,25 @@ jobs: thread_safety: false build_mode: "debug" + call-release-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "production" + call-release-auto-intel: uses: ./.github/workflows/intel-auto.yml with: thread_safety: true build_mode: "production" - call-release-cmake: + call-debug-thread-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Debug" + + call-release-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true @@ -64,7 +82,13 @@ jobs: thread_safety: false build_mode: "Debug" - call-release-cmake-intel: + call-release-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Release" + + call-release-cmake-thread-intel: uses: ./.github/workflows/intel-cmake.yml with: thread_safety: true From 5f8ef1d404aa62a5fecbf1c4583ca71a2b6484c1 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 09:28:56 -0500 Subject: [PATCH 19/39] Rework workflow job names --- .github/workflows/intel-auto.yml | 7 ++----- .github/workflows/intel-cmake.yml | 5 +---- .github/workflows/main-auto-par.yml | 4 ++-- .github/workflows/main-auto-spc.yml | 18 +++++++++--------- .github/workflows/main-auto.yml | 8 ++++---- .github/workflows/main-cmake.yml | 12 ++++++------ .github/workflows/main.yml | 8 +++----- 7 files changed, 27 insertions(+), 35 deletions(-) diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml index 540b5379da1..b01acc34f04 100644 --- a/.github/workflows/intel-auto.yml +++ b/.github/workflows/intel-auto.yml @@ -3,10 +3,6 @@ name: hdf5 dev autotools icx CI on: workflow_call: inputs: - thread_safety: - description: "thread-safety on/off" - required: true - type: boolean build_mode: description: "release vs. debug build" required: true @@ -16,7 +12,8 @@ permissions: contents: read jobs: - Autotools_build_and_test: + Intel_build_and_test: + name: "Intel ${{ inputs.build_mode }} -Werror (build only)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index 16515f4d4ea..4eaf19f866a 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -4,10 +4,6 @@ name: hdf5 dev CMake icx CI on: workflow_call: inputs: - thread_safety: - description: "thread-safety on/off" - required: true - type: boolean build_mode: description: "release vs. debug build" required: true @@ -18,6 +14,7 @@ permissions: jobs: Intel_build_and_test: + name: "Intel ${{ inputs.build_mode }} -Werror (build only)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/main-auto-par.yml b/.github/workflows/main-auto-par.yml index f0b92ce7390..79dc2344fa9 100644 --- a/.github/workflows/main-auto-par.yml +++ b/.github/workflows/main-auto-par.yml @@ -20,7 +20,7 @@ jobs: # build_parallel_debug_werror: - name: "Ubuntu gcc DBG Autotools parallel -Werror (build only)" + name: "gcc DBG parallel -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -77,7 +77,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_parallel_release_werror: - name: "Ubuntu gcc REL Autotools parallel -Werror (build only)" + name: "gcc REL parallel -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index d2cf56fc66a..50390e2098a 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -1,4 +1,4 @@ -name: hdf5 dev autotools CI +name: hdf5 dev autotools special CI # Controls when the action will run. Triggers the workflow on a call on: @@ -20,7 +20,7 @@ jobs: # build_v1_6: - name: "Ubuntu gcc DBG Autotools v1.6 default API (build only)" + name: "gcc DBG v1.6 default API (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -81,7 +81,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_v1_8: - name: "Ubuntu gcc DBG Autotools v1.8 default API (build only)" + name: "gcc DBG v1.8 default API (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -142,7 +142,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_v1_10: - name: "Ubuntu gcc DBG Autotools v1.10 default API (build only)" + name: "gcc DBG v1.10 default API (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -203,7 +203,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_v1_12: - name: "Ubuntu gcc DBG Autotools v1.12 default API (build only)" + name: "gcc DBG v1.12 default API (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -264,7 +264,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_v1_14: - name: "Ubuntu gcc DBG Autotools v1.14 default API (build only)" + name: "gcc DBG v1.14 default API (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -325,7 +325,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_no_deprecated: - name: "Ubuntu gcc Autotools no deprecated symbols (build only)" + name: "gcc no deprecated symbols (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -386,7 +386,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_debug_werror: - name: "Ubuntu gcc DBG Autotools -Werror (build only)" + name: "gcc DBG -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP @@ -447,7 +447,7 @@ jobs: working-directory: ${{ runner.workspace }}/build build_release_werror: - name: "Ubuntu gcc REL Autotools -Werror (build only)" + name: "gcc REL -Werror (build only)" runs-on: ubuntu-latest steps: # SETUP diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 5b9aff874bd..533d73a35dc 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -33,8 +33,8 @@ jobs: # names match. matrix: name: - - "Ubuntu gcc Autotools" - - "Ubuntu gcc Autotools parallel (build only)" + - "gcc" + - "gcc parallel (build only)" # This is where we list the bulk of the options for each configuration. # The key-value pair values are usually appropriate for being CMake or @@ -67,7 +67,7 @@ jobs: # The GitHub runners are inadequate for running parallel HDF5 tests, # so we catch most issues in daily testing. What we have here is just # a compile check to make sure nothing obvious is broken. - - name: "Ubuntu gcc Autotools parallel (build only)" + - name: "Ubuntu gcc parallel (build only)" os: ubuntu-latest cpp: disable fortran: enable @@ -84,7 +84,7 @@ jobs: run_tests: false # Sets the job's name from the properties - name: "${{ matrix.name }}${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" + name: "${{ matrix.name }}-TS=${{ inputs.thread_safety }}" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index 6a27698d17b..ccc64b3e0b4 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -33,9 +33,9 @@ jobs: # names match. matrix: name: - - "Windows MSVC CMake" - - "Ubuntu gcc CMake" - - "MacOS Clang CMake" + - "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 or @@ -46,7 +46,7 @@ jobs: # Windows w/ MSVC + CMake # # No Fortran, parallel, or VFDs that rely on POSIX things - - name: "Windows MSVC CMake" + - name: "Windows MSVC" os: windows-2022 toolchain: "" cpp: ON @@ -68,7 +68,7 @@ jobs: # # We might think about adding Clang, but MacOS already tests that # so it's not critical - - name: "Ubuntu gcc CMake" + - name: "Ubuntu gcc" os: ubuntu-latest cpp: ON fortran: ON @@ -91,7 +91,7 @@ jobs: # # We could also build with the Autotools via brew installing them, # but that seems unnecessary - - name: "MacOS Clang CMake" + - name: "MacOS Clang" os: macos-13 cpp: ON fortran: OFF diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d02eedacbc2..b6f16f4b951 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,10 +28,10 @@ permissions: # run in parallel. jobs: - call-workflow-special: + call-workflow-special-autotools: uses: ./.github/workflows/main-auto-spc.yml - call-parallel-special: + call-parallel-special-autotools: uses: ./.github/workflows/main-auto-par.yml call--debug-thread-autotools: @@ -61,7 +61,6 @@ jobs: call-release-auto-intel: uses: ./.github/workflows/intel-auto.yml with: - thread_safety: true build_mode: "production" call-debug-thread-cmake: @@ -88,8 +87,7 @@ jobs: thread_safety: false build_mode: "Release" - call-release-cmake-thread-intel: + call-release-cmake-intel: uses: ./.github/workflows/intel-cmake.yml with: - thread_safety: true build_mode: "Release" From b3664980af02bd257c3f57bf859c6d2278ceae1f Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 09:55:22 -0500 Subject: [PATCH 20/39] Group jobs --- .github/workflows/main-auto.yml | 2 +- .github/workflows/main.yml | 131 ++++++++++++++++---------------- 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 533d73a35dc..0458c6e12f9 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -90,7 +90,7 @@ jobs: if: "!contains(github.event.head_commit.message, 'skip-ci')" # The type of runner that the job will run on - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b6f16f4b951..8a38137dbcb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,67 +27,70 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - - call-workflow-special-autotools: - uses: ./.github/workflows/main-auto-spc.yml - - call-parallel-special-autotools: - uses: ./.github/workflows/main-auto-par.yml - - call--debug-thread-autotools: - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: true - build_mode: "debug" - - call-release-thread-autotools: - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: true - build_mode: "production" - - call-debug-autotools: - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: false - build_mode: "debug" - - call-release-autotools: - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: false - build_mode: "production" - - call-release-auto-intel: - uses: ./.github/workflows/intel-auto.yml - with: - build_mode: "production" - - call-debug-thread-cmake: - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: true - build_mode: "Debug" - - call-release-thread-cmake: - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: true - build_mode: "Release" - - call-debug-cmake: - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: false - build_mode: "Debug" - - call-release-cmake: - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: false - build_mode: "Release" - - call-release-cmake-intel: - uses: ./.github/workflows/intel-cmake.yml - with: - build_mode: "Release" + call-workflow-autotools: + steps: + - name: call-workflow-special-autotools: + uses: ./.github/workflows/main-auto-spc.yml + + - name: call-parallel-special-autotools: + uses: ./.github/workflows/main-auto-par.yml + + - name: call-debug-thread-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "debug" + + - name: call-release-thread-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "production" + + - name: call-debug-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "debug" + + - name: call-release-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "production" + + - name: call-release-auto-intel: + uses: ./.github/workflows/intel-auto.yml + with: + build_mode: "production" + + call-workflow-cmake: + steps: + - name: call-debug-thread-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Debug" + + - name: call-release-thread-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Release" + + - name: call-debug-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Debug" + + - name: call-release-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Release" + + - name: call-release-cmake-intel: + uses: ./.github/workflows/intel-cmake.yml + with: + build_mode: "Release" From 9441cab00620ea2e71f564b234abafccdfcfca8e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 09:58:54 -0500 Subject: [PATCH 21/39] Add job name --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8a38137dbcb..8e1df724e68 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,6 +28,7 @@ permissions: # run in parallel. jobs: call-workflow-autotools: + name: "Autotools" steps: - name: call-workflow-special-autotools: uses: ./.github/workflows/main-auto-spc.yml @@ -65,6 +66,7 @@ jobs: build_mode: "production" call-workflow-cmake: + name: "CMake" steps: - name: call-debug-thread-cmake: uses: ./.github/workflows/main-cmake.yml From 16cebccd5123e4e8d203f2ddd9667c1f562a94e3 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:11:04 -0500 Subject: [PATCH 22/39] jobs syntax change --- .github/workflows/main.yml | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8e1df724e68..a0108aca4e2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,72 +27,68 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - call-workflow-autotools: - name: "Autotools" - steps: - - name: call-workflow-special-autotools: + workflow-autotools: + call-workflow-special-autotools: uses: ./.github/workflows/main-auto-spc.yml - - name: call-parallel-special-autotools: + call-parallel-special-autotools: uses: ./.github/workflows/main-auto-par.yml - - name: call-debug-thread-autotools: + call-debug-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "debug" - - name: call-release-thread-autotools: + call-release-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" - - name: call-debug-autotools: + call-debug-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" - - name: call-release-autotools: + call-release-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "production" - - name: call-release-auto-intel: + call-release-auto-intel: uses: ./.github/workflows/intel-auto.yml with: build_mode: "production" - call-workflow-cmake: - name: "CMake" - steps: - - name: call-debug-thread-cmake: + workflow-cmake: + call-debug-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Debug" - - name: call-release-thread-cmake: + call-release-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" - - name: call-debug-cmake: + call-debug-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" - - name: call-release-cmake: + call-release-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Release" - - name: call-release-cmake-intel: + call-release-cmake-intel: uses: ./.github/workflows/intel-cmake.yml with: build_mode: "Release" From abd06a6b137abff8c9270c1a98a8ad5aacdd50fb Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:14:39 -0500 Subject: [PATCH 23/39] Add steps syntax --- .github/workflows/main.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a0108aca4e2..68ad070c41a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,67 +28,59 @@ permissions: # run in parallel. jobs: workflow-autotools: - call-workflow-special-autotools: + name: "Autotools Workflows" + steps: uses: ./.github/workflows/main-auto-spc.yml - call-parallel-special-autotools: uses: ./.github/workflows/main-auto-par.yml - call-debug-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "debug" - call-release-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" - call-debug-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" - call-release-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "production" - call-release-auto-intel: uses: ./.github/workflows/intel-auto.yml with: build_mode: "production" workflow-cmake: - call-debug-thread-cmake: + name: "CMake Workflows" + steps: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Debug" - call-release-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" - call-debug-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" - call-release-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Release" - call-release-cmake-intel: uses: ./.github/workflows/intel-cmake.yml with: build_mode: "Release" From a0f19d6aece2348b9373d06b08d3e89b67aa5715 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:16:01 -0500 Subject: [PATCH 24/39] Add dash to steps syntax --- .github/workflows/main.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 68ad070c41a..40c32a70a26 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,57 +30,57 @@ jobs: workflow-autotools: name: "Autotools Workflows" steps: - uses: ./.github/workflows/main-auto-spc.yml + - uses: ./.github/workflows/main-auto-spc.yml - uses: ./.github/workflows/main-auto-par.yml + - uses: ./.github/workflows/main-auto-par.yml uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "debug" - uses: ./.github/workflows/main-auto.yml + - uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" - uses: ./.github/workflows/main-auto.yml + - uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" - uses: ./.github/workflows/main-auto.yml + - uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "production" - uses: ./.github/workflows/intel-auto.yml + - uses: ./.github/workflows/intel-auto.yml with: build_mode: "production" workflow-cmake: name: "CMake Workflows" steps: - uses: ./.github/workflows/main-cmake.yml + - uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Debug" - uses: ./.github/workflows/main-cmake.yml + - uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" - uses: ./.github/workflows/main-cmake.yml + - uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" - uses: ./.github/workflows/main-cmake.yml + - uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Release" - uses: ./.github/workflows/intel-cmake.yml + - uses: ./.github/workflows/intel-cmake.yml with: build_mode: "Release" From 14820e927c9678a486abbced076e8f30dab06ea0 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:19:40 -0500 Subject: [PATCH 25/39] add runs on item --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 40c32a70a26..3511225d6ee 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,6 +29,7 @@ permissions: jobs: workflow-autotools: name: "Autotools Workflows" + runs-on: ubuntu-latest steps: - uses: ./.github/workflows/main-auto-spc.yml @@ -60,6 +61,7 @@ jobs: workflow-cmake: name: "CMake Workflows" + runs-on: ubuntu-latest steps: - uses: ./.github/workflows/main-cmake.yml with: From 68652234649f33d8c8b8290bd3d73fd8cfcb6c48 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:20:51 -0500 Subject: [PATCH 26/39] add missing dash --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3511225d6ee..4622aa0a099 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -35,7 +35,7 @@ jobs: - uses: ./.github/workflows/main-auto-par.yml - uses: ./.github/workflows/main-auto.yml + - uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "debug" From b13c8bb29712c3969b4b232d9fa36cbac1039808 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:36:56 -0500 Subject: [PATCH 27/39] split out autools/cmake to callable workflows --- .github/workflows/autotools.yml | 49 +++++++++++++++++++++++++++++ .github/workflows/cmake.yml | 41 ++++++++++++++++++++++++ .github/workflows/main.yml | 55 ++------------------------------- 3 files changed, 92 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/autotools.yml create mode 100644 .github/workflows/cmake.yml diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml new file mode 100644 index 00000000000..f9d70435589 --- /dev/null +++ b/.github/workflows/autotools.yml @@ -0,0 +1,49 @@ +name: hdf5 dev autools CI + +# Controls when the action will run. Triggers the workflow on push or pull request +on: + workflow_call: + +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" + call-workflow-special-autotools: + uses: ./.github/workflows/main-auto-spc.yml + + call-parallel-special-autotools: + uses: ./.github/workflows/main-auto-par.yml + + call-debug-thread-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "debug" + + call-release-thread-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: true + build_mode: "production" + + call-debug-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "debug" + + call-release-autotools: + uses: ./.github/workflows/main-auto.yml + with: + thread_safety: false + build_mode: "production" + + call-release-auto-intel: + uses: ./.github/workflows/intel-auto.yml + with: + build_mode: "production" diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 00000000000..67621ca6b51 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,41 @@ +name: hdf5 dev cmake CI + +# Controls when the action will run. Triggers the workflow on push or pull request +on: + workflow_call: + +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: + call-debug-thread-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Debug" + + call-release-thread-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: true + build_mode: "Release" + + call-debug-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Debug" + + call-release-cmake: + uses: ./.github/workflows/main-cmake.yml + with: + thread_safety: false + build_mode: "Release" + + call-release-cmake-intel: + uses: ./.github/workflows/intel-cmake.yml + with: + build_mode: "Release" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4622aa0a099..45363d00576 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,60 +29,9 @@ permissions: jobs: workflow-autotools: name: "Autotools Workflows" - runs-on: ubuntu-latest - steps: - - uses: ./.github/workflows/main-auto-spc.yml - - - uses: ./.github/workflows/main-auto-par.yml - - - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: true - build_mode: "debug" - - - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: true - build_mode: "production" - - - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: false - build_mode: "debug" - - - uses: ./.github/workflows/main-auto.yml - with: - thread_safety: false - build_mode: "production" - - - uses: ./.github/workflows/intel-auto.yml - with: - build_mode: "production" + uses: ./.github/workflows/autotools.yml workflow-cmake: name: "CMake Workflows" runs-on: ubuntu-latest - steps: - - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: true - build_mode: "Debug" - - - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: true - build_mode: "Release" - - - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: false - build_mode: "Debug" - - - uses: ./.github/workflows/main-cmake.yml - with: - thread_safety: false - build_mode: "Release" - - - uses: ./.github/workflows/intel-cmake.yml - with: - build_mode: "Release" + uses: ./.github/workflows/cmake.yml From 8e865ee5c2c2a7aee0ac18aa3620490ccff622ea Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:40:51 -0500 Subject: [PATCH 28/39] rework job syntax --- .github/workflows/autotools.yml | 17 ++++++++--------- .github/workflows/cmake.yml | 11 ++++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index f9d70435589..640c410e9de 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -11,39 +11,38 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - workflow-autotools: - name: "Autotools Workflows" - call-workflow-special-autotools: + name: "Autotools" + call-workflow-special-autotools: uses: ./.github/workflows/main-auto-spc.yml - call-parallel-special-autotools: + call-parallel-special-autotools: uses: ./.github/workflows/main-auto-par.yml - call-debug-thread-autotools: + call-debug-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "debug" - call-release-thread-autotools: + call-release-thread-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: true build_mode: "production" - call-debug-autotools: + call-debug-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "debug" - call-release-autotools: + call-release-autotools: uses: ./.github/workflows/main-auto.yml with: thread_safety: false build_mode: "production" - call-release-auto-intel: + call-release-auto-intel: uses: ./.github/workflows/intel-auto.yml with: build_mode: "production" diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 67621ca6b51..b7044ff1921 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -11,31 +11,32 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - call-debug-thread-cmake: + name: "CMake" + call-debug-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Debug" - call-release-thread-cmake: + call-release-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" - call-debug-cmake: + call-debug-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" - call-release-cmake: + call-release-cmake: uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Release" - call-release-cmake-intel: + call-release-cmake-intel: uses: ./.github/workflows/intel-cmake.yml with: build_mode: "Release" From 2efabed3798401280c40f67780ffb35fe10f5e25 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:43:11 -0500 Subject: [PATCH 29/39] remove name lines --- .github/workflows/autotools.yml | 1 - .github/workflows/cmake.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index 640c410e9de..96d01f065f6 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -11,7 +11,6 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - name: "Autotools" call-workflow-special-autotools: uses: ./.github/workflows/main-auto-spc.yml diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index b7044ff1921..13a496f039d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -11,7 +11,6 @@ permissions: # in parallel. We just have one job, but the matrix items defined below will # run in parallel. jobs: - name: "CMake" call-debug-thread-cmake: uses: ./.github/workflows/main-cmake.yml with: From db5144a1006a852fffe87d7b83240f8932debe29 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 10:47:55 -0500 Subject: [PATCH 30/39] remove incorrect line --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 45363d00576..e472b8cff56 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,5 +33,4 @@ jobs: workflow-cmake: name: "CMake Workflows" - runs-on: ubuntu-latest uses: ./.github/workflows/cmake.yml From a1de1fc5495e004ef16ad628e96e95fa19dff892 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 11:08:15 -0500 Subject: [PATCH 31/39] match names --- .github/workflows/main-auto.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 0458c6e12f9..b4b5cd72ee1 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -46,7 +46,7 @@ jobs: # # Keep this identical to the CMake configs. Note the difference in # the values. - - name: "Ubuntu gcc Autotools" + - name: "gcc" os: ubuntu-latest cpp: enable fortran: enable @@ -67,7 +67,7 @@ jobs: # The GitHub runners are inadequate for running parallel HDF5 tests, # so we catch most issues in daily testing. What we have here is just # a compile check to make sure nothing obvious is broken. - - name: "Ubuntu gcc parallel (build only)" + - name: "gcc parallel (build only)" os: ubuntu-latest cpp: disable fortran: enable From 4d5628bb578a6ea0275b7354e650d9e3aa181512 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 12:25:09 -0500 Subject: [PATCH 32/39] update checkout action version --- .github/workflows/clang-format-check.yml | 2 +- .github/workflows/clang-format-fix.yml | 2 +- .github/workflows/codespell.yml | 2 +- .github/workflows/cve.yml | 4 ++-- .github/workflows/h5py.yml | 2 +- .github/workflows/hdfeos5.yml | 2 +- .github/workflows/intel-auto.yml | 2 +- .github/workflows/intel-cmake.yml | 2 +- .github/workflows/main-auto-par.yml | 4 ++-- .github/workflows/main-auto-spc.yml | 16 ++++++++-------- .github/workflows/main-auto.yml | 2 +- .github/workflows/main-cmake.yml | 2 +- .github/workflows/netcdf.yml | 4 ++-- .github/workflows/release-files.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/tarball.yml | 2 +- 16 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/clang-format-check.yml b/.github/workflows/clang-format-check.yml index 56d2b48c3be..cde27c1bd29 100644 --- a/.github/workflows/clang-format-check.yml +++ b/.github/workflows/clang-format-check.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, 'skip-ci')" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run clang-format style check for C and Java code uses: DoozyX/clang-format-lint-action@v0.13 with: diff --git a/.github/workflows/clang-format-fix.yml b/.github/workflows/clang-format-fix.yml index 59811181f9b..d701d23a70f 100644 --- a/.github/workflows/clang-format-fix.yml +++ b/.github/workflows/clang-format-fix.yml @@ -21,7 +21,7 @@ jobs: permissions: contents: write # In order to allow EndBug/add-and-commit to commit changes steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Fix C and Java formatting issues detected by clang-format uses: DoozyX/clang-format-lint-action@v0.13 with: diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 5640224abac..e39af687156 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -10,7 +10,7 @@ jobs: name: Check for spelling errors runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: codespell-project/actions-codespell@master with: skip: ./.github/workflows/codespell.yml,./bin/trace,./hl/tools/h5watch/h5watch.c,./tools/test/h5jam/tellub.c,./config/sanitizer/LICENSE,./config/sanitizer/sanitizers.cmake,./tools/test/h5repack/testfiles/*.dat,./test/API/driver,./configure,./bin/ltmain.sh,./bin/depcomp,./bin/config.guess,./bin/config.sub,./autom4te.cache,./m4/libtool.m4,./c++/src/*.html diff --git a/.github/workflows/cve.yml b/.github/workflows/cve.yml index 4535a7a893d..6756840981d 100644 --- a/.github/workflows/cve.yml +++ b/.github/workflows/cve.yml @@ -27,7 +27,7 @@ jobs: name: CVE regression runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Autotools Dependencies (Linux) run: | @@ -40,7 +40,7 @@ jobs: make sudo make install - name: Checkout CVE test repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: HDFGroup/cve_hdf5 path: cve_hdf5 diff --git a/.github/workflows/h5py.yml b/.github/workflows/h5py.yml index 22a896e422f..10958441ab1 100644 --- a/.github/workflows/h5py.yml +++ b/.github/workflows/h5py.yml @@ -16,7 +16,7 @@ jobs: sudo apt-get update sudo apt-get install -y gfortran-12 - name: Checkout Spack - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: spack/spack path: ./spack diff --git a/.github/workflows/hdfeos5.yml b/.github/workflows/hdfeos5.yml index fd2d0116f61..5faf74a9ac4 100644 --- a/.github/workflows/hdfeos5.yml +++ b/.github/workflows/hdfeos5.yml @@ -27,7 +27,7 @@ jobs: name: Build hdfeos5 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Autotools Dependencies (Linux) run: | diff --git a/.github/workflows/intel-auto.yml b/.github/workflows/intel-auto.yml index b01acc34f04..f5249bdaf4a 100644 --- a/.github/workflows/intel-auto.yml +++ b/.github/workflows/intel-auto.yml @@ -16,7 +16,7 @@ jobs: name: "Intel ${{ inputs.build_mode }} -Werror (build only)" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Dependencies run: | sudo apt-get update diff --git a/.github/workflows/intel-cmake.yml b/.github/workflows/intel-cmake.yml index 4eaf19f866a..780021461f0 100644 --- a/.github/workflows/intel-cmake.yml +++ b/.github/workflows/intel-cmake.yml @@ -17,7 +17,7 @@ jobs: name: "Intel ${{ inputs.build_mode }} -Werror (build only)" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: add oneAPI to apt shell: bash diff --git a/.github/workflows/main-auto-par.yml b/.github/workflows/main-auto-par.yml index 79dc2344fa9..5f92836595e 100644 --- a/.github/workflows/main-auto-par.yml +++ b/.github/workflows/main-auto-par.yml @@ -40,7 +40,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -97,7 +97,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure diff --git a/.github/workflows/main-auto-spc.yml b/.github/workflows/main-auto-spc.yml index 50390e2098a..825a6ded4c2 100644 --- a/.github/workflows/main-auto-spc.yml +++ b/.github/workflows/main-auto-spc.yml @@ -43,7 +43,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -104,7 +104,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -165,7 +165,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -226,7 +226,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -287,7 +287,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -348,7 +348,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -409,7 +409,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure @@ -470,7 +470,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index b4b5cd72ee1..5e004bd82f1 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -134,7 +134,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # AUTOTOOLS CONFIGURE - name: Autotools Configure diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index ccc64b3e0b4..d2b6fa1ec51 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -163,7 +163,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 # # CMAKE CONFIGURE diff --git a/.github/workflows/netcdf.yml b/.github/workflows/netcdf.yml index 55a71c3959d..f38608012c0 100644 --- a/.github/workflows/netcdf.yml +++ b/.github/workflows/netcdf.yml @@ -31,7 +31,7 @@ jobs: sudo apt update sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl libtool libtool-bin - name: Checkout HDF5 - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install HDF5 run: | ./autogen.sh @@ -39,7 +39,7 @@ jobs: make -j sudo make install -j - name: Checkout netCDF - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: unidata/netcdf-c path: netcdf-c diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml index 3a77fe57afd..f53086e379d 100644 --- a/.github/workflows/release-files.yml +++ b/.github/workflows/release-files.yml @@ -40,7 +40,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 82973527a7f..8774331d570 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,7 +50,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: hdfsrc diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml index fd84f108805..5ee0f495a98 100644 --- a/.github/workflows/tarball.yml +++ b/.github/workflows/tarball.yml @@ -83,7 +83,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: hdfsrc From 4a62a209956d42c5100c4471fcb0c2dc55c3797f Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 12:43:30 -0500 Subject: [PATCH 33/39] Add job names --- .github/workflows/autotools.yml | 31 +++++++++++++++++++------------ .github/workflows/cmake.yml | 5 +++++ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index 96d01f065f6..eba87a1944b 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -12,36 +12,43 @@ permissions: # run in parallel. jobs: call-workflow-special-autotools: - uses: ./.github/workflows/main-auto-spc.yml + name: "Autotools Special Workflows" + uses: ./.github/workflows/main-auto-spc.yml call-parallel-special-autotools: - uses: ./.github/workflows/main-auto-par.yml + name: "Autotools Parallel Special Workflows" + uses: ./.github/workflows/main-auto-par.yml call-debug-thread-autotools: - uses: ./.github/workflows/main-auto.yml - with: + name: "Autotools Debug Thread-Safety Workflows" + uses: ./.github/workflows/main-auto.yml + with: thread_safety: true build_mode: "debug" call-release-thread-autotools: - uses: ./.github/workflows/main-auto.yml - with: + name: "Autotools Release Thread-Safety Workflows" + uses: ./.github/workflows/main-auto.yml + with: thread_safety: true build_mode: "production" call-debug-autotools: - uses: ./.github/workflows/main-auto.yml - with: + name: "Autotools Debug Workflows" + uses: ./.github/workflows/main-auto.yml + with: thread_safety: false build_mode: "debug" call-release-autotools: - uses: ./.github/workflows/main-auto.yml - with: + name: "Autotools Release Workflows" + uses: ./.github/workflows/main-auto.yml + with: thread_safety: false build_mode: "production" call-release-auto-intel: - uses: ./.github/workflows/intel-auto.yml - with: + name: "Autotools Intel Workflows" + uses: ./.github/workflows/intel-auto.yml + with: build_mode: "production" diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 13a496f039d..75180c0c048 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -12,30 +12,35 @@ permissions: # run in parallel. jobs: call-debug-thread-cmake: + name: "CMake Debug Thread-Safety Workflows" uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Debug" call-release-thread-cmake: + name: "CMake Release Thread-Safety Workflows" uses: ./.github/workflows/main-cmake.yml with: thread_safety: true build_mode: "Release" call-debug-cmake: + name: "CMake Debug Workflows" uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Debug" call-release-cmake: + name: "CMake Release Workflows" uses: ./.github/workflows/main-cmake.yml with: thread_safety: false build_mode: "Release" call-release-cmake-intel: + name: "CMake Intel Workflows" uses: ./.github/workflows/intel-cmake.yml with: build_mode: "Release" From 8254347e97882c5797530662eb1efa75cb4744cd Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 12:47:19 -0500 Subject: [PATCH 34/39] Add build mode back to name in autotools --- .github/workflows/main-auto.yml | 2 +- .github/workflows/main-cmake.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 5e004bd82f1..ea76a89e2b6 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -84,7 +84,7 @@ jobs: run_tests: false # Sets the job's name from the properties - name: "${{ matrix.name }}-TS=${{ inputs.thread_safety }}" + name: "${{ matrix.name }}-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index d2b6fa1ec51..7327d2a8518 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -112,7 +112,7 @@ jobs: # Sets the job's name from the properties - name: "${{ matrix.name }}${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" + name: "${{ matrix.name }}-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" From 8d2512f71b3382e910d170bad7ad0403e5326339 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 13:20:07 -0500 Subject: [PATCH 35/39] Split autotools into two jobs --- .github/workflows/autotools.yml | 8 +- .github/workflows/main-auto.yml | 200 ++++++++++++++------------------ 2 files changed, 93 insertions(+), 115 deletions(-) diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index eba87a1944b..89afa405c43 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -23,28 +23,28 @@ jobs: name: "Autotools Debug Thread-Safety Workflows" uses: ./.github/workflows/main-auto.yml with: - thread_safety: true + thread_safety: enable build_mode: "debug" call-release-thread-autotools: name: "Autotools Release Thread-Safety Workflows" uses: ./.github/workflows/main-auto.yml with: - thread_safety: true + thread_safety: enable build_mode: "production" call-debug-autotools: name: "Autotools Debug Workflows" uses: ./.github/workflows/main-auto.yml with: - thread_safety: false + thread_safety: disable build_mode: "debug" call-release-autotools: name: "Autotools Release Workflows" uses: ./.github/workflows/main-auto.yml with: - thread_safety: false + thread_safety: disable build_mode: "production" call-release-auto-intel: diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index ea76a89e2b6..4333bda8d77 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -5,7 +5,7 @@ on: workflow_call: inputs: thread_safety: - description: "thread-safety on/off" + description: "thread-safety enable/disable" required: true type: boolean build_mode: @@ -22,70 +22,10 @@ permissions: jobs: # A workflow that builds the library and runs all the tests + # Linux (Ubuntu) w/ gcc + Autotools + # Autotools_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: - - "gcc" - - "gcc parallel (build only)" - - # This is where we list the bulk of the options for each configuration. - # The key-value pair values are usually appropriate for being CMake or - # Autotools configure values, so be aware of that. - - include: - - # Linux (Ubuntu) w/ gcc + Autotools - # - # Keep this identical to the CMake configs. Note the difference in - # the values. - - name: "gcc" - os: ubuntu-latest - cpp: enable - fortran: enable - java: enable - docs: disable - parallel: disable - mirror_vfd: enable - direct_vfd: enable - ros3_vfd: enable - deprec_sym: enable - default_api: v114 - szip: yes - flags: "" - run_tests: true - - # Parallel Linux (Ubuntu) w/ gcc + Autotools - # - # The GitHub runners are inadequate for running parallel HDF5 tests, - # so we catch most issues in daily testing. What we have here is just - # a compile check to make sure nothing obvious is broken. - - name: "gcc parallel (build only)" - os: ubuntu-latest - cpp: disable - fortran: enable - java: disable - docs: disable - parallel: enable - mirror_vfd: disable - direct_vfd: disable - ros3_vfd: disable - deprec_sym: enable - default_api: v114 - szip: yes - flags: "CC=mpicc" - run_tests: false - - # Sets the job's name from the properties - name: "${{ matrix.name }}-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}" - + name: "GCC-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}d" # Don't run the action if the commit message says to skip CI if: "!contains(github.event.head_commit.message, 'skip-ci')" @@ -94,43 +34,18 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - - # # SETUP - # - - #Useful for debugging - - name: Dump matrix context - run: echo '${{ toJSON(matrix) }}' - - # Only CMake need ninja-build, but we just install it unilaterally - # libssl, etc. are needed for the ros3 VFD - name: Install Linux Dependencies run: | sudo apt 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 - if: matrix.os == 'ubuntu-latest' - - - name: Install Autotools Dependencies (Linux) - run: | - sudo apt install automake autoconf libtool libtool-bin - sudo apt install libaec0 libaec-dev - - - name: Install Autotools Dependencies (Linux, parallel) - run: | - sudo apt install openmpi-bin openmpi-common mpi-default-dev - echo "CC=mpicc" >> $GITHUB_ENV - echo "FC=mpif90" >> $GITHUB_ENV - if: (matrix.parallel == 'enable') - - - name: Install Dependencies (macOS) - run: brew install ninja doxygen - if: matrix.os == 'macos-13' # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources @@ -142,20 +57,22 @@ jobs: sh ./autogen.sh mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + $GITHUB_WORKSPACE/configure \ --enable-build-mode=${{ inputs.build_mode }} \ - --${{ matrix.deprec_sym }}-deprecated-symbols \ - --with-default-api-version=${{ matrix.default_api }} \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ --enable-shared \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.cpp }}-cxx \ - --${{ matrix.fortran }}-fortran \ - --${{ matrix.java }}-java \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} + --disable-parallel \ + --{{ inputs.thread_safety }}-threadsafe \ + --enable-cxx \ + --enable-fortran \ + --enable-java \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes shell: bash + working-directory: ${{ runner.workspace }}/build if: "! (inputs.thread_safety)" - name: Autotools Configure (Thread-Safe) @@ -163,17 +80,18 @@ jobs: sh ./autogen.sh mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" - ${{ matrix.flags }} $GITHUB_WORKSPACE/configure \ + $GITHUB_WORKSPACE/configure \ --enable-build-mode=${{ inputs.build_mode }} \ --enable-shared \ - --enable-threadsafe \ + --{{ inputs.thread_safety }}-threadsafe \ --disable-hl \ - --${{ matrix.parallel }}-parallel \ - --${{ matrix.mirror_vfd }}-mirror-vfd \ - --${{ matrix.direct_vfd }}-direct-vfd \ - --${{ matrix.ros3_vfd }}-ros3-vfd \ - --with-szlib=${{ matrix.szip }} + --disable-parallel \ + --enable-mirror-vfd \ + --enable-direct-vfd \ + --enable-ros3-vfd \ + --with-szlib=yes shell: bash + working-directory: ${{ runner.workspace }}/build if: (inputs.thread_safety) # BUILD @@ -186,7 +104,7 @@ jobs: - name: Autotools Run Tests run: make check -j2 working-directory: ${{ runner.workspace }}/build - if: (matrix.run_tests) && ! (inputs.thread_safety) + if: "! (inputs.thread_safety)" # THREAD-SAFE - name: Autotools Run Thread-Safe Tests @@ -194,7 +112,7 @@ jobs: cd test ./ttsafe working-directory: ${{ runner.workspace }}/build - if: (matrix.run_tests) && (inputs.thread_safety) + if: (inputs.thread_safety) # INSTALL (note that this runs even when we don't run the tests) - name: Autotools Install @@ -203,4 +121,64 @@ jobs: - name: Autotools Verify Install run: make check-install + + # + # The GitHub runners are inadequate for running parallel HDF5 tests, + # so we catch most issues in daily testing. What we have here is just + # a compile check to make sure nothing obvious is broken. + # A workflow that builds the library + # Parallel Linux (Ubuntu) w/ gcc + Autotools + # + Autotools_build_parallel: + name: "Parallel GCC-${{ inputs.build_mode }}-TS=${{ inputs.thread_safety }}d" + # 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: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # SETUP + - name: Install Linux Dependencies + run: | + sudo apt 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 + sudo apt install openmpi-bin openmpi-common mpi-default-dev + echo "CC=mpicc" >> $GITHUB_ENV + echo "FC=mpif90" >> $GITHUB_ENV + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v4 + + # AUTOTOOLS CONFIGURE + - name: Autotools Configure + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + CC=mpicc $GITHUB_WORKSPACE/configure \ + --enable-build-mode=${{ inputs.build_mode }} \ + --enable-deprecated-symbols \ + --with-default-api-version=v114 \ + --enable-shared \ + --enable-parallel \ + --disable-cxx \ + --enable-fortran \ + --disable-java \ + --disable-mirror-vfd \ + --disable-direct-vfd \ + --disable-ros3-vfd \ + --with-szlib=yes + shell: bash + working-directory: ${{ runner.workspace }}/build + + # BUILD + - name: Autotools Build + run: make -j3 working-directory: ${{ runner.workspace }}/build From 8f48239c37c8026264cbed3345a0801fa37eba7d Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 13:23:41 -0500 Subject: [PATCH 36/39] fix input type --- .github/workflows/main-auto.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 4333bda8d77..085f4d7ba38 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -7,7 +7,7 @@ on: thread_safety: description: "thread-safety enable/disable" required: true - type: boolean + type: string build_mode: description: "release vs. debug build" required: true @@ -73,7 +73,7 @@ jobs: --with-szlib=yes shell: bash working-directory: ${{ runner.workspace }}/build - if: "! (inputs.thread_safety)" + if: ${{ inputs.thread_safety == 'disable' }} - name: Autotools Configure (Thread-Safe) run: | @@ -92,7 +92,7 @@ jobs: --with-szlib=yes shell: bash working-directory: ${{ runner.workspace }}/build - if: (inputs.thread_safety) + if: ${{ inputs.thread_safety == 'enable' }} # BUILD - name: Autotools Build @@ -104,7 +104,7 @@ jobs: - name: Autotools Run Tests run: make check -j2 working-directory: ${{ runner.workspace }}/build - if: "! (inputs.thread_safety)" + if: ${{ inputs.thread_safety == 'disable' }} # THREAD-SAFE - name: Autotools Run Thread-Safe Tests @@ -112,7 +112,7 @@ jobs: cd test ./ttsafe working-directory: ${{ runner.workspace }}/build - if: (inputs.thread_safety) + if: ${{ inputs.thread_safety == 'enable' }} # INSTALL (note that this runs even when we don't run the tests) - name: Autotools Install From bed7892ac0a0125e9ed385bb3e01c597b12b590e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 13:28:46 -0500 Subject: [PATCH 37/39] Remove workdir in configure --- .github/workflows/main-auto.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index 085f4d7ba38..d80f8ed1ae7 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -46,7 +46,7 @@ jobs: echo "CC=gcc-12" >> $GITHUB_ENV echo "CXX=g++-12" >> $GITHUB_ENV echo "FC=gfortran-12" >> $GITHUB_ENV - + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Get Sources uses: actions/checkout@v4 @@ -72,7 +72,6 @@ jobs: --enable-ros3-vfd \ --with-szlib=yes shell: bash - working-directory: ${{ runner.workspace }}/build if: ${{ inputs.thread_safety == 'disable' }} - name: Autotools Configure (Thread-Safe) @@ -91,7 +90,6 @@ jobs: --enable-ros3-vfd \ --with-szlib=yes shell: bash - working-directory: ${{ runner.workspace }}/build if: ${{ inputs.thread_safety == 'enable' }} # BUILD @@ -176,7 +174,6 @@ jobs: --disable-ros3-vfd \ --with-szlib=yes shell: bash - working-directory: ${{ runner.workspace }}/build # BUILD - name: Autotools Build From 3aaa182a2921aef8a0ee9b885d40dd5ac4e57374 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 13:34:01 -0500 Subject: [PATCH 38/39] Correct variable syntax --- .github/workflows/main-auto.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index d80f8ed1ae7..e187ebc75ef 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -63,7 +63,7 @@ jobs: --with-default-api-version=v114 \ --enable-shared \ --disable-parallel \ - --{{ inputs.thread_safety }}-threadsafe \ + --${{ inputs.thread_safety }}-threadsafe \ --enable-cxx \ --enable-fortran \ --enable-java \ @@ -82,7 +82,7 @@ jobs: $GITHUB_WORKSPACE/configure \ --enable-build-mode=${{ inputs.build_mode }} \ --enable-shared \ - --{{ inputs.thread_safety }}-threadsafe \ + --${{ inputs.thread_safety }}-threadsafe \ --disable-hl \ --disable-parallel \ --enable-mirror-vfd \ From 42fcb39f5110ea052fc7c77775f7688781ee86b5 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 12 Sep 2023 13:59:51 -0500 Subject: [PATCH 39/39] add workdir --- .github/workflows/main-auto.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-auto.yml b/.github/workflows/main-auto.yml index e187ebc75ef..3ad03990c5e 100644 --- a/.github/workflows/main-auto.yml +++ b/.github/workflows/main-auto.yml @@ -119,7 +119,8 @@ jobs: - name: Autotools Verify Install run: make check-install - + working-directory: ${{ runner.workspace }}/build + # # The GitHub runners are inadequate for running parallel HDF5 tests, # so we catch most issues in daily testing. What we have here is just