diff options
Diffstat (limited to '.github/workflows/cmake-ctest.yml')
-rw-r--r-- | .github/workflows/cmake-ctest.yml | 126 |
1 files changed, 105 insertions, 21 deletions
diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index b4302cc..54642a4 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -8,6 +8,10 @@ on: description: "The common base name of the source tarballs" required: true type: string + preset_name: + description: "The common base name of the preset configuration name to control the build" + required: true + type: string permissions: contents: read @@ -24,6 +28,11 @@ jobs: - name: Install Dependencies (Windows) run: choco install ninja + - name: Install Dependencies + uses: ssciwr/doxygen-install@v1 + with: + version: "1.10.0" + - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 @@ -36,7 +45,7 @@ jobs: # Get files created by release script - name: Get zip-tarball (Windows) - uses: actions/download-artifact@v4 + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 with: name: zip-tarball path: ${{ github.workspace }} @@ -59,7 +68,7 @@ jobs: - name: Run ctest (Windows) run: | cd "${{ runner.workspace }}/hdf5/hdfsrc" - cmake --workflow --preset=ci-StdShar-MSVC --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-MSVC --fresh shell: bash - name: Publish binary (Windows) @@ -83,7 +92,7 @@ jobs: # Save files created by ctest script - name: Save published binary (Windows) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: zip-vs2022_cl-binary path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip @@ -96,7 +105,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Install CMake Dependencies (Linux) - run: sudo apt-get install ninja-build doxygen graphviz + run: sudo apt-get install ninja-build graphviz + + - name: Install Dependencies + uses: ssciwr/doxygen-install@v1 + with: + version: "1.10.0" - name: Set file base name (Linux) id: set-file-base @@ -106,7 +120,7 @@ jobs: # Get files created by release script - name: Get tgz-tarball (Linux) - uses: actions/download-artifact@v4 + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 with: name: tgz-tarball path: ${{ github.workspace }} @@ -122,7 +136,7 @@ jobs: - name: Run ctest (Linux) run: | cd "${{ runner.workspace }}/hdf5/hdfsrc" - cmake --workflow --preset=ci-StdShar-GNUC --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-GNUC --fresh shell: bash - name: Publish binary (Linux) @@ -145,7 +159,7 @@ jobs: # Save files created by ctest script - name: Save published binary (Linux) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: tgz-ubuntu-2204_gcc-binary path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz @@ -153,7 +167,7 @@ jobs: # Save doxygen files created by ctest script - name: Save published doxygen (Linux) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: docs-doxygen path: ${{ runner.workspace }}/hdf5/build114/ci-StdShar-GNUC/hdf5lib_docs/html @@ -163,10 +177,15 @@ jobs: # MacOS w/ Clang + CMake # name: "MacOS Clang CMake" - runs-on: macos-11 + runs-on: macos-13 steps: - name: Install Dependencies (MacOS) - run: brew install ninja doxygen + run: brew install ninja + + - name: Install Dependencies + uses: ssciwr/doxygen-install@v1 + with: + version: "1.10.0" - name: Set file base name (MacOS) id: set-file-base @@ -176,7 +195,7 @@ jobs: # Get files created by release script - name: Get tgz-tarball (MacOS) - uses: actions/download-artifact@v4 + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 with: name: tgz-tarball path: ${{ github.workspace }} @@ -201,12 +220,13 @@ jobs: id: run-ctest run: | cd "${{ runner.workspace }}/hdf5/hdfsrc" - cmake --workflow --preset=ci-StdShar-Clang --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-OSX-Clang --fresh shell: bash - name: Publish binary (MacOS) id: publish-ctest-binary run: | + mkdir "${{ runner.workspace }}/build114" mkdir "${{ runner.workspace }}/build114/hdf5" cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build114/hdf5 @@ -224,12 +244,76 @@ jobs: # Save files created by ctest script - name: Save published binary (MacOS) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: tgz-osx12-binary path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-osx12.tar.gz if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` + build_and_test_S3_linux: + # Linux S3 (Ubuntu) w/ gcc + CMake + # + name: "Ubuntu gcc CMake S3" + runs-on: ubuntu-latest + steps: + - name: Install CMake Dependencies (Linux S3) + run: | + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + + - name: Set file base name (Linux S3) + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + + # Get files created by release script + - name: Get tgz-tarball (Linux S3) + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 + with: + name: tgz-tarball + path: ${{ github.workspace }} + + - name: List files for the space (Linux S3) + run: | + ls -l ${{ github.workspace }} + ls ${{ runner.workspace }} + + - name: Uncompress source (Linux S3) + run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz + + - name: Run ctest (Linux S3) + run: | + cd "${{ runner.workspace }}/hdf5/hdfsrc" + cmake --workflow --preset=${{ inputs.preset_name }}-GNUC-S3 --fresh + shell: bash + + - name: Publish binary (Linux S3) + id: publish-ctest-binary + run: | + mkdir "${{ runner.workspace }}/build114" + mkdir "${{ runner.workspace }}/build114/hdf5" + cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build114/hdf5 + cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build114/hdf5 + cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5114 + cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC-S3/*.tar.gz ${{ runner.workspace }}/build114/hdf5 + cd "${{ runner.workspace }}/build114" + tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc_s3.tar.gz hdf5 + shell: bash + + - name: List files in the space (Linux S3) + run: | + ls ${{ github.workspace }} + ls -l ${{ runner.workspace }} + + # Save files created by ctest script + - name: Save published binary (Linux S3) + uses: actions/upload-artifact@v4 + with: + name: tgz-ubuntu-2204_gcc_s3-binary + path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc_s3.tar.gz + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` + ####### intel builds build_and_test_win_intel: # Windows w/ OneAPI + CMake @@ -259,7 +343,7 @@ jobs: # Get files created by release script - name: Get zip-tarball (Windows_intel) - uses: actions/download-artifact@v4 + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 with: name: zip-tarball path: ${{ github.workspace }} @@ -286,7 +370,7 @@ jobs: CXX: ${{ steps.setup-fortran.outputs.cxx }} run: | cd "${{ runner.workspace }}/hdf5/hdfsrc" - cmake --workflow --preset=ci-StdShar-Intel --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-win-Intel --fresh shell: pwsh - name: Publish binary (Windows_intel) @@ -297,7 +381,7 @@ jobs: Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING -Destination ${{ runner.workspace }}/build/hdf5/ Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/build/hdf5/ Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/README.md -Destination ${{ runner.workspace }}/build/hdf5/ - Copy-Item -Path ${{ runner.workspace }}/hdf5/build/ci-StdShar-Intel/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip + Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip cd "${{ runner.workspace }}/build" 7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip hdf5 shell: pwsh @@ -310,7 +394,7 @@ jobs: # Save files created by ctest script - name: Save published binary (Windows_intel) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: zip-vs2022_intel-binary path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip @@ -340,7 +424,7 @@ jobs: # Get files created by release script - name: Get tgz-tarball (Linux_intel) - uses: actions/download-artifact@v4 + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 with: name: tgz-tarball path: ${{ github.workspace }} @@ -360,7 +444,7 @@ jobs: CXX: ${{ steps.setup-fortran.outputs.cxx }} run: | cd "${{ runner.workspace }}/hdf5/hdfsrc" - cmake --workflow --preset=ci-StdShar-Intel --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-Intel --fresh shell: bash - name: Publish binary (Linux_intel) @@ -371,7 +455,7 @@ jobs: cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build/hdf5 cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build/hdf5 cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5 - cp ${{ runner.workspace }}/hdf5/build/ci-StdShar-Intel/*.tar.gz ${{ runner.workspace }}/build/hdf5 + cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/*.tar.gz ${{ runner.workspace }}/build/hdf5 cd "${{ runner.workspace }}/build" tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz hdf5 shell: bash @@ -383,7 +467,7 @@ jobs: # Save files created by ctest script - name: Save published binary (Linux_intel) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: tgz-ubuntu-2204_intel-binary path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz |