Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add intel binaries to daily-build/release workflows #3895

Merged
merged 5 commits into from
Dec 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 164 additions & 6 deletions .github/workflows/cmake-ctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/README.md -Destination ${{ runner.workspace }}/build/hdf5/
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/ci-StdShar-MSVC/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
cd "${{ runner.workspace }}/build"
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win_vs2022.zip hdf5
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip hdf5
shell: pwsh

- name: List files in the space (Windows)
Expand All @@ -85,8 +85,8 @@ jobs:
- name: Save published binary (Windows)
uses: actions/upload-artifact@v3
with:
name: zip-vs2022-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win_vs2022.zip
name: zip-vs2022_cl-binary
path: ${{ runner.workspace }}/build/${{ 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`

build_and_test_linux:
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5
cp ${{ runner.workspace }}/hdf5/build/ci-StdShar-GNUC/*.tar.gz ${{ runner.workspace }}/build/hdf5
cd "${{ runner.workspace }}/build"
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz hdf5
tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz hdf5
shell: bash

- name: List files in the space (Linux)
Expand All @@ -147,8 +147,8 @@ jobs:
- name: Save published binary (Linux)
uses: actions/upload-artifact@v3
with:
name: tgz-ubuntu-2204-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
name: tgz-ubuntu-2204_gcc-binary
path: ${{ runner.workspace }}/build/${{ 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`

# Save doxygen files created by ctest script
Expand Down Expand Up @@ -230,3 +230,161 @@ jobs:
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`

####### intel builds
build_and_test_win_intel:
# Windows w/ OneAPI + CMake
#
name: "Windows Intel CTest"
runs-on: windows-latest
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: '2023.2'

- name: Enable Developer Command Prompt
uses: ilammy/[email protected]

- 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
shell: bash

# Get files created by release script
- name: Get zip-tarball (Windows_intel)
uses: actions/download-artifact@v3
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/hdfsrc"
cmake --workflow --preset=ci-StdShar-Intel --fresh
shell: pwsh

- name: Publish binary (Windows_intel)
id: publish-ctest-binary
run: |
mkdir "${{ runner.workspace }}/build"
mkdir "${{ runner.workspace }}/build/hdf5"
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
cd "${{ runner.workspace }}/build"
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_intel.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@v3
with:
name: zip-vs2022_intel-binary
path: ${{ runner.workspace }}/build/${{ 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`

build_and_test_linux_intel:
# Linux (Ubuntu) w/ OneAPI + CMake
#
name: "Ubuntu Intel CMake"
runs-on: ubuntu-latest
steps:
- name: Install CMake Dependencies (Linux_intel)
run: sudo apt-get install ninja-build doxygen graphviz

- name: add oneAPI to env
uses: fortran-lang/setup-fortran@v1
id: setup-fortran
with:
compiler: intel
version: '2023.2'

- 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

# Get files created by release script
- name: Get tgz-tarball (Linux_intel)
uses: actions/download-artifact@v3
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/hdfsrc"
cmake --workflow --preset=ci-StdShar-Intel --fresh
shell: bash

- name: Publish binary (Linux_intel)
id: publish-ctest-binary
run: |
mkdir "${{ runner.workspace }}/build"
mkdir "${{ runner.workspace }}/build/hdf5"
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
cd "${{ runner.workspace }}/build"
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@v3
with:
name: tgz-ubuntu-2204_intel-binary
path: ${{ runner.workspace }}/build/${{ 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`
28 changes: 22 additions & 6 deletions .github/workflows/release-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:
- name: Get published binary (Windows)
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: zip-vs2022-binary
name: zip-vs2022_cl-binary
path: ${{ github.workspace }}

- name: Get published binary (MacOS)
Expand All @@ -111,7 +111,19 @@ jobs:
- name: Get published binary (Linux)
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: tgz-ubuntu-2204-binary
name: tgz-ubuntu-2204_gcc-binary
path: ${{ github.workspace }}

- name: Get published binary (Windows_intel)
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: zip-vs2022_intel-binary
path: ${{ github.workspace }}

- name: Get published binary (Linux_intel)
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: tgz-ubuntu-2204_intel-binary
path: ${{ github.workspace }}

- name: Store snapshot name
Expand All @@ -131,8 +143,10 @@ jobs:
${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`

- name: Release tag
Expand All @@ -148,8 +162,10 @@ jobs:
${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`

- name: List files for the space (Linux)
Expand Down
46 changes: 46 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,17 @@
"ci-Java",
"ci-StdShar"
]
},
{
"name": "ci-StdShar-Intel",
"description": "Intel Standard Config for x64 (Release)",
"inherits": [
"ci-x64-Release-Intel",
"ci-CPP",
"ci-Fortran",
"ci-Java",
"ci-StdShar"
]
}
],
"buildPresets": [
Expand Down Expand Up @@ -175,6 +186,15 @@
"inherits": [
"ci-x64-Release-GNUC"
]
},
{
"name": "ci-StdShar-Intel",
"description": "Intel Standard Build for x64 (Release)",
"configurePreset": "ci-StdShar-Intel",
"verbose": true,
"inherits": [
"ci-x64-Release-Intel"
]
}
],
"testPresets": [
Expand Down Expand Up @@ -203,6 +223,18 @@
"inherits": [
"ci-x64-Release-GNUC"
]
},
{
"name": "ci-StdShar-Intel",
"configurePreset": "ci-StdShar-Intel",
"inherits": [
"ci-x64-Release-Intel"
],
"filter": {
"exclude": {
"name": "H5DUMP-tfloatsattrs"
}
}
}
],
"packagePresets": [
Expand All @@ -220,6 +252,11 @@
"name": "ci-StdShar-GNUC",
"configurePreset": "ci-StdShar-GNUC",
"inherits": "ci-x64-Release-GNUC"
},
{
"name": "ci-StdShar-Intel",
"configurePreset": "ci-StdShar-Intel",
"inherits": "ci-x64-Release-Intel"
}
],
"workflowPresets": [
Expand Down Expand Up @@ -249,6 +286,15 @@
{"type": "test", "name": "ci-StdShar-GNUC"},
{"type": "package", "name": "ci-StdShar-GNUC"}
]
},
{
"name": "ci-StdShar-Intel",
"steps": [
{"type": "configure", "name": "ci-StdShar-Intel"},
{"type": "build", "name": "ci-StdShar-Intel"},
{"type": "test", "name": "ci-StdShar-Intel"},
{"type": "package", "name": "ci-StdShar-Intel"}
]
}
]
}
Expand Down
23 changes: 10 additions & 13 deletions config/cmake-presets/hidden-presets.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,16 @@
{
"name": "ci-Intel",
"hidden": true,
"toolset": {
"value": "host=x64",
"strategy": "external"
}
},
{
"name": "ci-Fortran",
"hidden": true,
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "config/toolchain/intel.cmake"
"HDF5_BUILD_FORTRAN": "ON"
},
"toolset": {
"value": "host=x64",
Expand All @@ -99,6 +107,7 @@
{
"name": "ci-Fortran-Clang",
"hidden": true,
"inherits": "ci-Fortran",
"cacheVariables": {
"CMAKE_Fortran_COMPILER": {"type": "FILEPATH", "value": "gfortran"}
},
Expand All @@ -108,18 +117,6 @@
"regex": ".*-Clang"
}
},
{
"name": "ci-Fortran",
"hidden": true,
"inherits": "ci-Fortran-Clang",
"cacheVariables": {
"HDF5_BUILD_FORTRAN": "ON"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
}
},
{
"name": "ci-CPP",
"hidden": true,
Expand Down