Skip to content

Commit

Permalink
Merge branch 'master' into 1uc/product-slices
Browse files Browse the repository at this point in the history
  • Loading branch information
1uc committed Jun 12, 2024
2 parents fe8ea6a + b74fabb commit 8588895
Show file tree
Hide file tree
Showing 142 changed files with 8,740 additions and 4,383 deletions.
1 change: 1 addition & 0 deletions .github/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ cmake --version
set -x
export HIGHFIVE_BUILD=$GITHUB_WORKSPACE/build
cmake -B $HIGHFIVE_BUILD -S $GITHUB_WORKSPACE \
-DHIGHFIVE_HAS_WERROR=On \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
"${CMAKE_OPTIONS[@]}"
Expand Down
70 changes: 70 additions & 0 deletions .github/create_submodule_update_pr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/usr/bin/env bash

# Usage:
# $0 PACKAGE_NAME VERSION
#
# Before calling this script, run the commands to update the dependency. If
# there dependency shouldn't update then the script must not modify the repo.
#
# When the repo is in the updated state, run this script. It will commit
# everything and create a PR.
#
# The PR title is `Update ${PACKAGE_NAME} to ${VERSION}` the script checks for
# this string and only creates a new PR if the string isn't the title of an
# existing PR.
#
# PACKAGE_NAME is an identifier of the package, no spaces. Doesn't need to be
# the exact name of the dependency.
#
# VERSION an identifier of the next version of the package, no spaces. This
# variable must be the same if the version if the same and different if
# the version is different. However, it doesn't have to be a `x.y.z` it
# could be a Git SHA, or something else.

set -eu

PACKAGE_NAME=$1
VERSION=$2
BRANCH=update-${PACKAGE_NAME}-${VERSION}
COMMIT_MESSAGE="Update ${PACKAGE_NAME} to ${VERSION}"

if [[ -z "${PACKAGE_NAME}" ]]
then
echo "Empty PACKAGE_NAME."
exit -1
fi

if [[ -z "${VERSION}" ]]
then
echo "Empty VERSION."
exit -1
fi


# NOTE: In a later runs of CI we will search for PR with this exact
# title. Only if no such PR exists will the script create a
# new PR.
PR_TITLE="Update ${PACKAGE_NAME} to ${VERSION}"

if [[ -z "$(git status --porcelain)" ]]
then
echo "No differences detected: ${PACKAGE_NAME} is up-to-date."
exit 0
fi

if [[ -z "$(gh pr list --state all --search "${PR_TITLE}")" ]]
then

git checkout -b $BRANCH
git config user.name github-actions
git config user.email [email protected]
git commit -a -m "${COMMIT_MESSAGE}"

git push -u origin ${BRANCH}
gh pr create \
--title "${PR_TITLE}" \
--body "This PR was generated by a Github Actions workflow."

else
echo "Old PR detected: didn't create a new one."
fi
2 changes: 1 addition & 1 deletion .github/run_examples.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /usr/bin/env bash

set -e
set -eu

if [[ $# -eq 0 ]]
then
Expand Down
31 changes: 1 addition & 30 deletions .github/workflows/check_doxygen_awesome_version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,4 @@ jobs:
run: |
VERSION=$(doc/doxygen-awesome-css/update_doxygen_awesome.sh "$(mktemp -d)")
BRANCH=update-doxygen-awesome-${VERSION}
COMMIT_MESSAGE="Update doxygen-awesome to ${VERSION}"
# NOTE: In a later runs of CI we will search for PR with this exact
# title. Only if no such PR exists will the script create a
# new PR.
PR_TITLE="[docs] Update doxygen-awesome to ${VERSION}"
if [[ -z "$(git status --porcelain)" ]]
then
echo "No differences detected: doxygen-awesome is up-to-date."
exit 0
fi
if [[ -z "$(gh pr list --state all --search "${PR_TITLE}")" ]]
then
git checkout -b $BRANCH
git config user.name github-actions
git config user.email [email protected]
git commit -a -m "${COMMIT_MESSAGE}"
git push -u origin ${BRANCH}
gh pr create \
--title "${PR_TITLE}" \
--body "This PR was generated by a Github Actions workflow."
else
echo "Old PR detected: didn't create a new one."
fi
.github/create_submodule_update_pr.sh doxygen-awesome ${VERSION}
115 changes: 73 additions & 42 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ concurrency:
on:
push:
branches:
- ci_test
- release/**
- master
- main
- v2.x
pull_request:
branches:
- master
- release/**
- main
- v2.x
paths-ignore:
- '**.md'
- '**.rst'
Expand Down Expand Up @@ -41,22 +43,21 @@ jobs:
- config:
os: ubuntu-20.04
pkgs: ''
flags: '-DHIGHFIVE_USE_BOOST:Bool=OFF'
- config:
os: ubuntu-20.04
pkgs: 'libboost-all-dev libopencv-dev'
flags: '-DHIGHFIVE_USE_OPENCV:Bool=ON -GNinja'
flags: '-DHIGHFIVE_TEST_BOOST:Bool=ON -DHIGHFIVE_TEST_OPENCV:Bool=ON -GNinja'
- config:
os: ubuntu-latest
pkgs: 'libboost-all-dev libeigen3-dev libopencv-dev'
flags: '-DHIGHFIVE_USE_EIGEN:Bool=ON -DHIGHFIVE_USE_OPENCV:Bool=ON -GNinja'
flags: '-DHIGHFIVE_TEST_BOOST:Bool=ON -DHIGHFIVE_TEST_EIGEN:Bool=ON -DHIGHFIVE_TEST_OPENCV:Bool=ON -GNinja'
- config:
os: ubuntu-20.04
pkgs: 'libboost-all-dev'
flags: '-DCMAKE_CXX_STANDARD=17'
flags: '-DCMAKE_CXX_STANDARD=17 -DHIGHFIVE_TEST_BOOST:Bool=ON'
- config:
os: ubuntu-22.04
flags: '-DHIGHFIVE_USE_BOOST=Off -DCMAKE_CXX_STANDARD=20'
flags: '-DHIGHFIVE_TEST_BOOST=Off -DCMAKE_CXX_STANDARD=20 -DHIGHFIVE_HAS_CONCEPTS=On'

steps:
- uses: actions/checkout@v3
Expand All @@ -75,12 +76,18 @@ jobs:
- name: Build
run: |
CMAKE_OPTIONS=(-DHIGHFIVE_PARALLEL_HDF5:BOOL=ON ${{ matrix.config.flags }})
CMAKE_OPTIONS=(-DHDF5_PREFER_PARALLEL:BOOL=ON ${{ matrix.config.flags }})
source $GITHUB_WORKSPACE/.github/build.sh
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
# Job testing several versions of hdf5
Expand All @@ -89,7 +96,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
hdf5_version : [ hdf5-1_8_23, hdf5-1_10_11, hdf5-1_12_2, hdf5-1_14_3 ]
hdf5_version : [ hdf5-1_8_23, hdf5-1_10_11, hdf5-1_12_3, hdf5_1.14.4.1 ]

steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -118,7 +125,13 @@ jobs:
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
- name: Examples
Expand Down Expand Up @@ -151,12 +164,18 @@ jobs:
- name: Build
env: ${{matrix.env}}
run: |
CMAKE_OPTIONS=(-GNinja)
CMAKE_OPTIONS=(-DHIGHFIVE_TEST_BOOST=ON -GNinja)
source $GITHUB_WORKSPACE/.github/build.sh
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
- name: Examples
working-directory: ${{github.workspace}}/build/src/examples
Expand Down Expand Up @@ -189,8 +208,8 @@ jobs:
run: |
CMAKE_OPTIONS=(
-GNinja
-DHIGHFIVE_USE_BOOST:BOOL=ON
-DHIGHFIVE_USE_EIGEN:BOOL=ON
-DHIGHFIVE_TEST_BOOST:BOOL=ON
-DHIGHFIVE_TEST_EIGEN:BOOL=ON
-DHIGHFIVE_BUILD_DOCS:BOOL=FALSE
-DHIGHFIVE_GLIBCXX_ASSERTIONS=${HIGHFIVE_GLIBCXX_ASSERTIONS:-OFF}
-DHIGHFIVE_SANITIZER=${HIGHFIVE_SANITIZER:-OFF}
Expand All @@ -199,7 +218,13 @@ jobs:
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
- name: Examples
working-directory: ${{github.workspace}}/build/src/examples
Expand Down Expand Up @@ -238,7 +263,7 @@ jobs:
sudo apt-get -qq install libhdf5-openmpi-dev
- name: "CMake Project Integration"
run: bash tests/test_project_integration.sh
run: bash tests/cmake_integration/test_cmake_integration.sh


# Job checking the benchmarks work
Expand Down Expand Up @@ -268,9 +293,16 @@ jobs:
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ "macOS-12" ]
os: [ "macOS-14" ]
cxxstd: ["14", "17", "20"]

include:
- os: "macOS-12"
cxxstd: "14"

- os: "macOS-13"
cxxstd: "20"

steps:
- uses: actions/checkout@v3
with:
Expand All @@ -283,19 +315,23 @@ jobs:
run: |
CMAKE_OPTIONS=(
-GNinja
-DHIGHFIVE_USE_BOOST:BOOL=ON
-DHIGHFIVE_USE_EIGEN:BOOL=ON
-DHIGHFIVE_USE_XTENSOR:BOOL=ON
-DHIGHFIVE_TEST_BOOST:BOOL=ON
-DHIGHFIVE_TEST_EIGEN:BOOL=ON
-DHIGHFIVE_TEST_XTENSOR:BOOL=ON
-DHIGHFIVE_BUILD_DOCS:BOOL=FALSE
-DHIGHFIVE_TEST_SINGLE_INCLUDES=ON
-DCMAKE_CXX_FLAGS="-coverage -O0"
-DCMAKE_CXX_STANDARD=${{matrix.cxxstd}}
)
source $GITHUB_WORKSPACE/.github/build.sh
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
- name: Examples
working-directory: ${{github.workspace}}/build/src/examples
Expand All @@ -308,19 +344,9 @@ jobs:
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ "windows-2022"]
vs-toolset: [ "v141", "v143" ]
os: [ "windows-2019", "windows-2022"]
cxxstd: ["14", "17", "20"]

include:
- os: "windows-2019"
vs-toolset: "v142"
cxxstd: "14"

- os: "windows-2019"
vs-toolset: "v142"
cxxstd: "17"

steps:
- uses: actions/checkout@v3
with:
Expand All @@ -335,17 +361,22 @@ jobs:
shell: bash -l {0}
run: |
CMAKE_OPTIONS=(
-T ${{matrix.vs-toolset}}
-DCMAKE_CXX_STANDARD=${{matrix.cxxstd}}
-DHIGHFIVE_UNIT_TESTS=ON
-DHIGHFIVE_USE_BOOST:BOOL=ON
-DHIGHFIVE_USE_EIGEN:BOOL=ON
-DHIGHFIVE_USE_XTENSOR:BOOL=ON
-DHIGHFIVE_TEST_SINGLE_INCLUDES=ON
-DHIGHFIVE_TEST_BOOST:BOOL=ON
-DHIGHFIVE_TEST_EIGEN:BOOL=ON
-DHIGHFIVE_TEST_XTENSOR:BOOL=ON
)
source $GITHUB_WORKSPACE/.github/build.sh
- name: Test
working-directory: ${{github.workspace}}/build
shell: bash -l {0}
run: ctest -j2 --output-on-failure -C $BUILD_TYPE
run: |
ctest -j2 --output-on-failure -C $BUILD_TYPE
- name: Test No HDF5 Diagnositics
working-directory: ${{github.workspace}}/build
shell: bash -l {0}
run: |
! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG
6 changes: 2 additions & 4 deletions .github/workflows/clang_format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ on:
pull_request:
branches:
- master
paths-ignore:
- '**.md'
- '**.rst'
- 'doc/**'
- main
- v2.x

jobs:
Code_Format:
Expand Down
Loading

0 comments on commit 8588895

Please sign in to comment.