diff options
Diffstat (limited to '.github')
| -rw-r--r-- | .github/CODEOWNERS | 42 | ||||
| -rw-r--r-- | .github/FUNDING.yml | 3 | ||||
| -rw-r--r-- | .github/workflows/clang-format-check.yml | 18 | ||||
| -rw-r--r-- | .github/workflows/clang-format-fix.yml | 25 | ||||
| -rw-r--r-- | .github/workflows/codespell.yml | 15 | ||||
| -rw-r--r-- | .github/workflows/main.yml | 221 | ||||
| -rw-r--r-- | .github/workflows/pr-check.yml | 213 |
7 files changed, 537 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..99daf78 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,42 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in the repo. +* @lrknox + +# Order is important. The last matching pattern has the most precedence. +# So if a pull request only touches javascript files, only these owners +# will be requested to review. +*.cmake @byrnHDF @ChristopherHogan @gnuoyd @derobins +CMakeLists.txt @byrnHDF @ChristopherHogan @gnuoyd @derobins +CMakeTests.* @byrnHDF @ChristopherHogan @gnuoyd @derobins + +/bin/ @lrknox @ChristopherHogan @gnuoyd @derobins @qkoziol + +/c++/ @bmribler @byrnHDF @ChristopherHogan @gnuoyd @derobins + +/config/ @lrknox @byrnHDF @ChristopherHogan @gnuoyd @derobins @qkoziol + +/doc/ @ChristopherHogan @gnuoyd @jrmainzer + +/examples/ @lrknox @bmribler @ChristopherHogan @gnuoyd @derobins + +/fortran/ @brtnfld @epourmal + +/hl/ @bmribler @byrnHDF @ChristopherHogan @gnuoyd @derobins + +/java/ @jhendersonHDF @byrnHDF + +/m4/ @lrknox @ChristopherHogan @gnuoyd @derobins + +/release_docs/ @lrknox @bmribler @byrnHDF + +/src/ @jhendersonHDF @fortnern @soumagne @vchoi-hdfgroup @ChristopherHogan @gnuoyd @derobins @jrmainzer @qkoziol + +/test/ @jhendersonHDF @fortnern @soumagne @vchoi-hdfgroup @ChristopherHogan @gnuoyd @derobins @jrmainzer @qkoziol + +/testpar/ @jhendersonHDF @ChristopherHogan @gnuoyd @jrmainzer @qkoziol + +/tools/ @byrnHDF @bmribler @ChristopherHogan @gnuoyd @derobins + +/utils/ @lrknox @byrnHDF @ChristopherHogan @gnuoyd @derobins diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..7c4daaf --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +custom: "https://hdfgroup.org/about-us/donate-to-the-hdf-group/" diff --git a/.github/workflows/clang-format-check.yml b/.github/workflows/clang-format-check.yml new file mode 100644 index 0000000..4f696e7 --- /dev/null +++ b/.github/workflows/clang-format-check.yml @@ -0,0 +1,18 @@ +name: clang-format Check +on: + pull_request: +jobs: + formatting-check: + name: Formatting Check + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, 'skip-ci')" + steps: + - uses: actions/checkout@v2 + - name: Run clang-format style check for C programs. + uses: DoozyX/clang-format-lint-action@v0.11 + with: + source: '.' + extensions: 'c,h,cpp,hpp' + clangFormatVersion: 10 + style: file + exclude: './config ./hl/src/H5LTanalyze.c ./hl/src/H5LTparse.c ./hl/src/H5LTparse.h ./src/H5Epubgen.h ./src/H5Einit.h ./src/H5Eterm.h ./src/H5Edefin.h ./src/H5version.h ./src/H5overflow.h' diff --git a/.github/workflows/clang-format-fix.yml b/.github/workflows/clang-format-fix.yml new file mode 100644 index 0000000..082d617 --- /dev/null +++ b/.github/workflows/clang-format-fix.yml @@ -0,0 +1,25 @@ +name: clang-format Check +on: + workflow_dispatch: + push: +jobs: + formatting-check: + name: Formatting Check + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, 'skip-ci')" + steps: + - uses: actions/checkout@v2 + - name: Run clang-format style check for C programs. + uses: DoozyX/clang-format-lint-action@v0.11 + with: + source: '.' + extensions: 'c,h,cpp,hpp' + clangFormatVersion: 10 + inplace: True + style: file + exclude: './config ./hl/src/H5LTanalyze.c ./hl/src/H5LTparse.c ./hl/src/H5LTparse.h ./src/H5Epubgen.h ./src/H5Einit.h ./src/H5Eterm.h ./src/H5Edefin.h ./src/H5version.h ./src/H5overflow.h' + - uses: EndBug/add-and-commit@v7 + with: + author_name: github-actions + author_email: 41898282+github-actions[bot]@users.noreply.github.com + message: 'Committing clang-format changes' diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml new file mode 100644 index 0000000..78c1a4f --- /dev/null +++ b/.github/workflows/codespell.yml @@ -0,0 +1,15 @@ +# GitHub Action to automate the identification of common misspellings in text files +# https://github.com/codespell-project/codespell +# https://github.com/codespell-project/actions-codespell +name: codespell +on: [push, pull_request] +jobs: + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: codespell-project/actions-codespell@master + with: + skip: ./bin/trace,./hl/tools/h5watch/h5watch.c,./tools/test/h5jam/tellub.c + ignore_words_list: isnt,inout,nd,parms,parm,ba,offsetP,ser,ois,had,fiter,fo,clude,refere,minnum,offsetp,creat,ans:,eiter,lastr,ans,isn't,ifset,sur,trun,dne,tthe,hda,filname,te,htmp,minnum,ro,oce diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..2282a09 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,221 @@ +name: hdf5 dev CI + +# Controls when the action will run. Triggers the workflow on push or pull request +on: + workflow_dispatch: + push: + branches: [ develop, hdf5_1_12, hdf5_1_10, hdf5_1_8 ] + paths-ignore: + - '.github/**' + - 'doc/**' + - 'release_docs/**' + - 'ACKNOWLEDGEMENTS' + - 'COPYING**' + - '**.md' + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + strategy: +# fail-fast: false + matrix: + name: ["Windows Latest MSVC", "Ubuntu Latest GCC", "Ubuntu Debug GCC", "macOS Latest Clang", "Ubuntu Autotools GCC", "Windows TS MSVC", "Ubuntu TS GCC", "TS Debug GCC", "macOS TS Clang", "TS Autotools GCC"] + include: + - name: "Windows Latest MSVC" + artifact: "Windows-MSVC.tar.xz" + os: windows-2022 + build_type: "Release" + toolchain: "" + cpp: ON + fortran: OFF + java: ON + ts: OFF + hl: ON + parallel: OFF + generator: "-G \"Visual Studio 17 2022\" -A x64" + - name: "Ubuntu Latest GCC" + artifact: "Linux.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: ON + fortran: ON + java: ON + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "macOS Latest Clang" + artifact: "macOS.tar.xz" + os: macos-latest + build_type: "Release" + cpp: ON + fortran: OFF + java: ON + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + - name: "Ubuntu Debug GCC" + artifact: "LinuxDBG.tar.xz" + os: ubuntu-latest + build_type: "Debug" + cpp: ON + fortran: OFF + java: OFF + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "Ubuntu Autotools GCC" + artifact: "LinuxA.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: enable + fortran: enable + java: enable + ts: disable + hl: enable + parallel: disable + toolchain: "" + generator: "autogen" +# Threadsafe runs + - name: "Windows TS MSVC" + artifact: "Windows-MSVCTS.tar.xz" + os: windows-2019 + build_type: "Release" + toolchain: "" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + generator: "-G \"Visual Studio 16 2019\" -A x64" + - name: "Ubuntu TS GCC" + artifact: "LinuxTS.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "macOS TS Clang" + artifact: "macOSTS.tar.xz" + os: macos-latest + build_type: "Release" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + - name: "TS Debug GCC" + artifact: "LinuxTSDBG.tar.xz" + os: ubuntu-latest + build_type: "Debug" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "TS Autotools GCC" + artifact: "LinuxATS.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: disable + fortran: disable + java: disable + ts: enable + hl: disable + parallel: disable + toolchain: "" + generator: "autogen" +# - name: "Ubuntu Parallel GCC" +# artifact: "LinuxPar.tar.xz" +# os: ubuntu-latest +# build_type: "Release" +# cpp: OFF +# fortran: OFF +# parallel: ON +# toolchain: "config/toolchain/GCC.cmake" +# generator: "-G Ninja" + + name: ${{ matrix.name }} + # The type of runner that the job will run on + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Install Dependencies (Linux) + run: sudo apt-get install ninja-build + if: matrix.os == 'ubuntu-latest' + - name: Install Autotools Dependencies (Linux) + run: sudo apt-get install automake autoconf libtool libtool-bin + if: matrix.generator == 'autogen' + - name: Install Dependencies (Windows) + run: choco install ninja + if: matrix.os == 'windows-latest' + - name: Install Dependencies (macOS) + run: brew install ninja + if: matrix.os == 'macos-latest' + - name: Set environment for MSVC (Windows) + if: matrix.os == 'windows-latest' + run: | + # Set these env vars so cmake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v2 + + - name: Autotools Configure + if: matrix.generator == 'autogen' + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure --enable-shared --${{ matrix.ts }}-threadsafe --${{ matrix.hl }}-hl --${{ matrix.parallel }}-parallel --${{ matrix.cpp }}-cxx --${{ matrix.fortran }}-fortran --${{ matrix.java }}-java + shell: bash + + - name: Configure + if: matrix.generator != 'autogen' + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake ${{ matrix.generator }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_ALL_WARNINGS=ON -DHDF5_ENABLE_THREADSAFE:BOOL=${{ matrix.ts }} -DHDF5_BUILD_HL_LIB:BOOL=${{ matrix.hl }} -DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} -DHDF5_BUILD_CPP_LIB:BOOL=${{ matrix.cpp }} -DHDF5_BUILD_FORTRAN=${{ matrix.fortran }} -DHDF5_BUILD_JAVA=${{ matrix.java }} $GITHUB_WORKSPACE + shell: bash + + - name: Autotools Build + if: matrix.generator == 'autogen' + run: make + working-directory: ${{ runner.workspace }}/build + + - name: Build + if: matrix.generator != 'autogen' + run: cmake --build . --config ${{ matrix.build_type }} + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Test + if: matrix.generator == 'autogen' + run: make check + working-directory: ${{ runner.workspace }}/build + + - name: Test + if: matrix.generator != 'autogen' + run: ctest --build . -C ${{ matrix.build_type }} -V + working-directory: ${{ runner.workspace }}/build diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 0000000..65bf42b --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,213 @@ +name: hdf5 dev CI + +# Controls when the action will run. Triggers the workflow on push or pull request +on: + pull_request: + branches: [ develop, hdf5_1_12, hdf5_1_10, hdf5_1_8 ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + strategy: +# fail-fast: false + matrix: + name: ["Windows Latest MSVC", "Ubuntu Latest GCC", "Ubuntu Debug GCC", "macOS Latest Clang", "Ubuntu Autotools GCC", "Windows TS MSVC", "Ubuntu TS GCC", "TS Debug GCC", "macOS TS Clang", "TS Autotools GCC"] + include: + - name: "Windows Latest MSVC" + artifact: "Windows-MSVC.tar.xz" + os: windows-2022 + build_type: "Release" + toolchain: "" + cpp: ON + fortran: OFF + java: ON + ts: OFF + hl: ON + parallel: OFF + generator: "-G \"Visual Studio 17 2022\" -A x64" + - name: "Ubuntu Latest GCC" + artifact: "Linux.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: ON + fortran: ON + java: ON + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "macOS Latest Clang" + artifact: "macOS.tar.xz" + os: macos-latest + build_type: "Release" + cpp: ON + fortran: OFF + java: ON + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + - name: "Ubuntu Debug GCC" + artifact: "LinuxDBG.tar.xz" + os: ubuntu-latest + build_type: "Debug" + cpp: ON + fortran: OFF + java: OFF + ts: OFF + hl: ON + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "Ubuntu Autotools GCC" + artifact: "LinuxA.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: enable + fortran: enable + java: enable + ts: disable + hl: enable + parallel: disable + toolchain: "" + generator: "autogen" +# Threadsafe runs + - name: "Windows TS MSVC" + artifact: "Windows-MSVCTS.tar.xz" + os: windows-2019 + build_type: "Release" + toolchain: "" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + generator: "-G \"Visual Studio 16 2019\" -A x64" + - name: "Ubuntu TS GCC" + artifact: "LinuxTS.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "macOS TS Clang" + artifact: "macOSTS.tar.xz" + os: macos-latest + build_type: "Release" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + - name: "TS Debug GCC" + artifact: "LinuxTSDBG.tar.xz" + os: ubuntu-latest + build_type: "Debug" + cpp: OFF + fortran: OFF + java: OFF + ts: ON + hl: OFF + parallel: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "TS Autotools GCC" + artifact: "LinuxATS.tar.xz" + os: ubuntu-latest + build_type: "Release" + cpp: disable + fortran: disable + java: disable + ts: enable + hl: disable + parallel: disable + toolchain: "" + generator: "autogen" +# - name: "Ubuntu Parallel GCC" +# artifact: "LinuxPar.tar.xz" +# os: ubuntu-latest +# build_type: "Release" +# cpp: OFF +# fortran: OFF +# parallel: ON +# toolchain: "config/toolchain/GCC.cmake" +# generator: "-G Ninja" + + name: ${{ matrix.name }} + # The type of runner that the job will run on + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Install Dependencies (Linux) + run: sudo apt-get install ninja-build + if: matrix.os == 'ubuntu-latest' + - name: Install Autotools Dependencies (Linux) + run: sudo apt-get install automake autoconf libtool libtool-bin + if: matrix.generator == 'autogen' + - name: Install Dependencies (Windows) + run: choco install ninja + if: matrix.os == 'windows-latest' + - name: Install Dependencies (macOS) + run: brew install ninja + if: matrix.os == 'macos-latest' + - name: Set environment for MSVC (Windows) + if: matrix.os == 'windows-latest' + run: | + # Set these env vars so cmake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v2 + + - name: Autotools Configure + if: matrix.generator == 'autogen' + run: | + sh ./autogen.sh + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + $GITHUB_WORKSPACE/configure --enable-shared --${{ matrix.ts }}-threadsafe --${{ matrix.hl }}-hl --${{ matrix.parallel }}-parallel --${{ matrix.cpp }}-cxx --${{ matrix.fortran }}-fortran --${{ matrix.java }}-java + shell: bash + + - name: Configure + if: matrix.generator != 'autogen' + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake ${{ matrix.generator }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_ALL_WARNINGS=ON -DHDF5_ENABLE_THREADSAFE:BOOL=${{ matrix.ts }} -DHDF5_BUILD_HL_LIB:BOOL=${{ matrix.hl }} -DHDF5_ENABLE_PARALLEL:BOOL=${{ matrix.parallel }} -DHDF5_BUILD_CPP_LIB:BOOL=${{ matrix.cpp }} -DHDF5_BUILD_FORTRAN=${{ matrix.fortran }} -DHDF5_BUILD_JAVA=${{ matrix.java }} $GITHUB_WORKSPACE + shell: bash + + - name: Autotools Build + if: matrix.generator == 'autogen' + run: make + working-directory: ${{ runner.workspace }}/build + + - name: Build + if: matrix.generator != 'autogen' + run: cmake --build . --config ${{ matrix.build_type }} + working-directory: ${{ runner.workspace }}/build + + - name: Autotools Test + if: matrix.generator == 'autogen' + run: make check + working-directory: ${{ runner.workspace }}/build + + - name: Test + if: matrix.generator != 'autogen' + run: ctest --build . -C ${{ matrix.build_type }} -V + working-directory: ${{ runner.workspace }}/build |
