Sync develop changes August 21 - 27 to hdf5_1_14 (#4774) #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: hdf5 1.14 ctest runs | |
# Triggers the workflow on a call from another workflow | |
on: | |
workflow_call: | |
inputs: | |
snap_name: | |
description: 'The name in the source tarballs' | |
type: string | |
required: false | |
default: hdfsrc | |
file_base: | |
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 | |
use_environ: | |
description: 'Environment to locate files' | |
type: string | |
required: true | |
default: snapshots | |
secrets: | |
AZURE_TENANT_ID: | |
required: true | |
AZURE_CLIENT_ID: | |
required: true | |
AZURE_CLIENT_SECRET: | |
required: true | |
AZURE_ENDPOINT: | |
required: true | |
AZURE_CODE_SIGNING_NAME: | |
required: true | |
AZURE_CERT_PROFILE_NAME: | |
required: true | |
permissions: | |
contents: read | |
jobs: | |
check-secret: | |
name: Check Secrets exists | |
runs-on: ubuntu-latest | |
outputs: | |
sign-state: ${{ steps.set-signing-state.outputs.BINSIGN }} | |
steps: | |
- name: Identify Signing Status | |
id: set-signing-state | |
env: | |
signing_secret: ${{ secrets.AZURE_ENDPOINT }} | |
run: | | |
if [[ '${{ env.signing_secret }}' == '' ]] | |
then | |
SIGN_VAL=$(echo "false") | |
else | |
SIGN_VAL=$(echo "true") | |
fi | |
echo "BINSIGN=$SIGN_VAL" >> $GITHUB_OUTPUT | |
shell: bash | |
build_and_test_win: | |
# Windows w/ MSVC + CMake | |
# | |
name: "Windows MSVC CTest" | |
runs-on: windows-latest | |
needs: [check-secret] | |
steps: | |
- name: Install Dependencies (Windows) | |
run: choco install ninja | |
- name: Install Dependencies | |
uses: ssciwr/doxygen-install@v1 | |
with: | |
version: "1.9.7" | |
- name: Enable Developer Command Prompt | |
uses: ilammy/[email protected] | |
- name: Set file base name (Windows) | |
id: set-file-base | |
run: | | |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") | |
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
shell: bash | |
# Get files created by release script | |
- name: Get zip-tarball (Windows) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: zip-tarball | |
path: ${{ github.workspace }} | |
- name: using powershell | |
shell: pwsh | |
run: Get-Location | |
- name: List files for the space (Windows) | |
run: | | |
Get-ChildItem -Path ${{ github.workspace }} | |
Get-ChildItem -Path ${{ runner.workspace }} | |
shell: pwsh | |
- name: Uncompress source (Windows) | |
working-directory: ${{ github.workspace }} | |
run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip | |
shell: bash | |
- name: Run ctest (Windows) | |
run: | | |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
cmake --workflow --preset=${{ inputs.preset_name }}-MSVC --fresh | |
shell: bash | |
- name: Sign files with Trusted Signing | |
uses: azure/[email protected] | |
with: | |
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
endpoint: ${{ secrets.AZURE_ENDPOINT }} | |
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }} | |
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }} | |
files-folder: ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC | |
files-folder-filter: msi | |
file-digest: SHA256 | |
timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
timestamp-digest: SHA256 | |
if: ${{ needs.check-secret.outputs.sign-state == 'true' }} | |
- name: Publish binary (Windows) | |
id: publish-ctest-binary | |
run: | | |
mkdir "${{ runner.workspace }}/build114" | |
mkdir "${{ runner.workspace }}/build114/hdf5" | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-MSVC/README.md -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-MSVC/* -Destination ${{ runner.workspace}}/build114/hdf5/ -Include *.zip | |
cd "${{ runner.workspace }}/build114" | |
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip hdf5 | |
shell: pwsh | |
- name: Publish msi binary (Windows) | |
id: publish-ctest-msi-binary | |
run: | | |
mkdir "${{ runner.workspace }}/buildmsi" | |
mkdir "${{ runner.workspace }}/buildmsi/hdf5" | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC/README.md -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC/* -Destination ${{ runner.workspace }}/buildmsi/hdf5/ -Include *.msi | |
cd "${{ runner.workspace }}/buildmsi" | |
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip hdf5 | |
shell: pwsh | |
- name: List files in the space (Windows) | |
run: | | |
Get-ChildItem -Path ${{ github.workspace }} | |
Get-ChildItem -Path ${{ runner.workspace }} | |
shell: pwsh | |
# Save files created by ctest script | |
- name: Save published binary (Windows) | |
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 | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
- name: Save published msi binary (Windows) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: msi-vs2022_cl-binary | |
path: ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
build_and_test_linux: | |
# Linux (Ubuntu) w/ gcc + CMake | |
# | |
name: "Ubuntu gcc CMake" | |
runs-on: ubuntu-latest | |
needs: [check-secret] | |
steps: | |
- name: Install CMake Dependencies (Linux) | |
run: | | |
sudo apt-get update | |
sudo apt-get install ninja-build graphviz | |
- name: Install Dependencies | |
uses: ssciwr/doxygen-install@v1 | |
with: | |
version: "1.9.7" | |
- name: Set file base name (Linux) | |
id: set-file-base | |
run: | | |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") | |
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
# Get files created by release script | |
- name: Get tgz-tarball (Linux) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: tgz-tarball | |
path: ${{ github.workspace }} | |
- name: List files for the space (Linux) | |
run: | | |
ls -l ${{ github.workspace }} | |
ls ${{ runner.workspace }} | |
- name: Uncompress source (Linux) | |
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz | |
- name: Run ctest (Linux) | |
run: | | |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
cmake --workflow --preset=${{ inputs.preset_name }}-GNUC --fresh | |
shell: bash | |
- name: Publish binary (Linux) | |
id: publish-ctest-binary | |
run: | | |
mkdir "${{ runner.workspace }}/build114" | |
mkdir "${{ runner.workspace }}/build114/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/README.md ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/*.tar.gz ${{ runner.workspace }}/build114/hdf5 | |
cd "${{ runner.workspace }}/build114" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz hdf5 | |
shell: bash | |
- name: Publish deb binary (Linux) | |
id: publish-ctest-deb-binary | |
run: | | |
mkdir "${{ runner.workspace }}/builddeb" | |
mkdir "${{ runner.workspace }}/builddeb/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/builddeb/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/builddeb/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/README.md ${{ runner.workspace }}/builddeb/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/*.deb ${{ runner.workspace }}/builddeb/hdf5 | |
cd "${{ runner.workspace }}/builddeb" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz hdf5 | |
shell: bash | |
- name: Publish rpm binary (Linux) | |
id: publish-ctest-rpm-binary | |
run: | | |
mkdir "${{ runner.workspace }}/buildrpm" | |
mkdir "${{ runner.workspace }}/buildrpm/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/buildrpm/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/buildrpm/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/README.md ${{ runner.workspace }}/buildrpm/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/*.rpm ${{ runner.workspace }}/buildrpm/hdf5 | |
cd "${{ runner.workspace }}/buildrpm" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz hdf5 | |
shell: bash | |
- name: List files in the space (Linux) | |
run: | | |
ls ${{ github.workspace }} | |
ls -l ${{ runner.workspace }} | |
# Save files created by ctest script | |
- name: Save published binary (Linux) | |
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 | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
- name: Save published binary deb (Linux) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: deb-ubuntu-2204_gcc-binary | |
path: ${{ runner.workspace }}/builddeb/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
- name: Save published binary rpm (Linux) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rpm-ubuntu-2204_gcc-binary | |
path: ${{ runner.workspace }}/buildrpm/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
# Save doxygen files created by ctest script | |
- name: Save published doxygen (Linux) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs-doxygen | |
path: ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC/hdf5lib_docs/html | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
build_and_test_mac_latest: | |
# MacOS w/ Clang + CMake | |
# | |
name: "MacOS Clang CMake" | |
runs-on: macos-latest | |
needs: [check-secret] | |
steps: | |
- name: Install Dependencies (MacOS_latest) | |
run: brew install ninja | |
- name: Install Dependencies | |
uses: ssciwr/doxygen-install@v1 | |
with: | |
version: "1.9.7" | |
- name: Set up JDK 19 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
- name: Set file base name (MacOS_latest) | |
id: set-file-base | |
run: | | |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") | |
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
# Get files created by release script | |
- name: Get tgz-tarball (MacOS_latest) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: tgz-tarball | |
path: ${{ github.workspace }} | |
- name: List files for the space (MacOS_latest) | |
run: | | |
ls ${{ github.workspace }} | |
ls ${{ runner.workspace }} | |
- name: Uncompress source (MacOS_latest) | |
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz | |
# symlinks the compiler executables to a common location | |
- name: Setup GNU Fortran | |
uses: fortran-lang/setup-fortran@v1 | |
id: setup-fortran | |
with: | |
compiler: gcc | |
version: 14 | |
- name: Run ctest (MacOS_latest) | |
id: run-ctest | |
run: | | |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
cmake --workflow --preset=${{ inputs.preset_name }}-MACOS-Clang --fresh | |
shell: bash | |
- name: Publish binary (MacOS_latest) | |
id: publish-ctest-binary | |
run: | | |
mkdir "${{ runner.workspace }}/build" | |
mkdir "${{ runner.workspace }}/build/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/build/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Clang/README.md ${{ runner.workspace }}/build/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Clang/*.tar.gz ${{ runner.workspace }}/build/hdf5 | |
cd "${{ runner.workspace }}/build" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz hdf5 | |
shell: bash | |
- name: Publish dmg binary (MacOS_latest) | |
id: publish-ctest-dmg-binary | |
run: | | |
mkdir "${{ runner.workspace }}/builddmg" | |
mkdir "${{ runner.workspace }}/builddmg/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/builddmg/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/builddmg/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Clang/README.md ${{ runner.workspace }}/builddmg/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Clang/*.dmg ${{ runner.workspace }}/builddmg/hdf5 | |
cd "${{ runner.workspace }}/builddmg" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-macos14_clang.arm64.dmg.tar.gz hdf5 | |
shell: bash | |
- name: List files in the space (MacOS_latest) | |
run: | | |
ls ${{ github.workspace }} | |
ls -l ${{ runner.workspace }} | |
# Save files created by ctest script | |
- name: Save published binary (MacOS_latest) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tgz-macos14_clang-binary | |
path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
- name: Save published dmg binary (MacOS_latest) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tgz-macos14_clang-dmg-binary | |
path: ${{ runner.workspace }}/builddmg/${{ steps.set-file-base.outputs.FILE_BASE }}-macos14_clang.arm64.dmg.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 update | |
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 | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
# Get files created by release script | |
- name: Get tgz-tarball (Linux S3) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
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/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
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/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-GNUC-S3/README.md ${{ runner.workspace }}/build114/hdf5 | |
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 }}/build114/${{ 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 | |
# | |
name: "Windows Intel CTest" | |
runs-on: windows-latest | |
needs: [check-secret] | |
steps: | |
- name: Install Dependencies (Windows_intel) | |
run: choco install ninja | |
- name: add oneAPI to env | |
uses: fortran-lang/setup-fortran@v1 | |
id: setup-fortran | |
with: | |
compiler: intel | |
version: '2024.1' | |
- name: Set file base name (Windows_intel) | |
id: set-file-base | |
run: | | |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") | |
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
shell: bash | |
# Get files created by release script | |
- name: Get zip-tarball (Windows_intel) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: zip-tarball | |
path: ${{ github.workspace }} | |
- name: using powershell | |
shell: pwsh | |
run: Get-Location | |
- name: List files for the space (Windows_intel) | |
run: | | |
Get-ChildItem -Path ${{ github.workspace }} | |
Get-ChildItem -Path ${{ runner.workspace }} | |
shell: pwsh | |
- name: Uncompress source (Windows_intel) | |
working-directory: ${{ github.workspace }} | |
run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip | |
shell: bash | |
- name: Run ctest (Windows_intel) with oneapi | |
env: | |
FC: ${{ steps.setup-fortran.outputs.fc }} | |
CC: ${{ steps.setup-fortran.outputs.cc }} | |
CXX: ${{ steps.setup-fortran.outputs.cxx }} | |
run: | | |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
cmake --workflow --preset=${{ inputs.preset_name }}-win-Intel --fresh | |
shell: pwsh | |
- name: Sign files with Trusted Signing (Windows_intel) | |
uses: azure/[email protected] | |
with: | |
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
endpoint: ${{ secrets.AZURE_ENDPOINT }} | |
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }} | |
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }} | |
files-folder: ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel | |
files-folder-filter: msi | |
file-digest: SHA256 | |
timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
timestamp-digest: SHA256 | |
if: ${{ needs.check-secret.outputs.sign-state == 'true' }} | |
- name: Publish binary (Windows_intel) | |
id: publish-ctest-binary | |
run: | | |
mkdir "${{ runner.workspace }}/build114" | |
mkdir "${{ runner.workspace }}/build114/hdf5" | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-Intel/README.md -Destination ${{ runner.workspace }}/build114/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-Intel/* -Destination ${{ runner.workspace }}/build114/hdf5/ -Include *.zip | |
cd "${{ runner.workspace }}/build114" | |
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip hdf5 | |
shell: pwsh | |
- name: Publish msi binary (Windows_intel) | |
mkdir "${{ runner.workspace }}/buildmsi" | |
mkdir "${{ runner.workspace }}/buildmsi/hdf5" | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/README.md -Destination ${{ runner.workspace }}/buildmsi/hdf5/ | |
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-Intel/* -Destination ${{ runner.workspace }}/buildmsi/hdf5/ -Include *.msi | |
cd "${{ runner.workspace }}/buildmsi" | |
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.msi.zip hdf5 | |
shell: pwsh | |
- name: List files in the space (Windows_intel) | |
run: | | |
Get-ChildItem -Path ${{ github.workspace }} | |
Get-ChildItem -Path ${{ runner.workspace }} | |
shell: pwsh | |
# Save files created by ctest script | |
- name: Save published binary (Windows_intel) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: zip-vs2022_intel-binary | |
path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
- name: Save published msi binary (Windows_intel) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: msi-vs2022_intel-binary | |
path: ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.msi.zip | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` | |
build_and_test_linux_intel: | |
# Linux (Ubuntu) w/ OneAPI + CMake | |
# | |
name: "Ubuntu Intel CMake" | |
runs-on: ubuntu-latest | |
needs: [check-secret] | |
steps: | |
- name: Install CMake Dependencies (Linux_intel) | |
run: | | |
sudo apt-get update | |
sudo apt-get install ninja-build doxygen graphviz | |
- name: Install Dependencies | |
uses: ssciwr/doxygen-install@v1 | |
with: | |
version: "1.10.0" | |
- name: add oneAPI to env | |
uses: fortran-lang/setup-fortran@v1 | |
id: setup-fortran | |
with: | |
compiler: intel | |
version: '2024.1' | |
- name: Set file base name (Linux_intel) | |
id: set-file-base | |
run: | | |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}") | |
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT | |
if [[ '${{ inputs.use_environ }}' == 'release' ]] | |
then | |
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}") | |
else | |
SOURCE_NAME_BASE=$(echo "hdfsrc") | |
fi | |
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT | |
# Get files created by release script | |
- name: Get tgz-tarball (Linux_intel) | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: tgz-tarball | |
path: ${{ github.workspace }} | |
- name: List files for the space (Linux_intel) | |
run: | | |
ls -l ${{ github.workspace }} | |
ls ${{ runner.workspace }} | |
- name: Uncompress source (Linux_intel) | |
run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz | |
- name: Run ctest (Linux_intel) | |
env: | |
FC: ${{ steps.setup-fortran.outputs.fc }} | |
CC: ${{ steps.setup-fortran.outputs.cc }} | |
CXX: ${{ steps.setup-fortran.outputs.cxx }} | |
run: | | |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}" | |
cmake --workflow --preset=${{ inputs.preset_name }}-Intel --fresh | |
shell: bash | |
- name: Publish binary (Linux_intel) | |
id: publish-ctest-binary | |
run: | | |
mkdir "${{ runner.workspace }}/build114" | |
mkdir "${{ runner.workspace }}/build114/hdf5" | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-Intel/README.md ${{ runner.workspace }}/build114/hdf5 | |
cp ${{ runner.workspace }}/hdf5/build114/${{ inputs.preset_name }}-Intel/*.tar.gz ${{ runner.workspace }}/build114/hdf5 | |
cd "${{ runner.workspace }}/build114" | |
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz hdf5 | |
shell: bash | |
- name: List files in the space (Linux_intel) | |
run: | | |
ls ${{ github.workspace }} | |
ls -l ${{ runner.workspace }} | |
# Save files created by ctest script | |
- name: Save published binary (Linux_intel) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tgz-ubuntu-2204_intel-binary | |
path: ${{ runner.workspace }}/build114/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` |