mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-06 17:20:42 +08:00
Add cygwin CI and update yaml files for consistency and accuracy (#4131)
* Add cygwin CI * add cygwin packages * Correct option names * Cleanup yaml file and synch look and feel * Synch CI look and feel and correct path issues * Upgrade oneapi version * pwsh needs env: for vars * No continuation char for pwsh * restore correct pwsh step * Run subset of tests for cygwin workflow * Remove space chars in regex * restore full tests
This commit is contained in:
parent
782c0e5a8c
commit
112f445019
@ -16,9 +16,10 @@ jobs:
|
||||
name: "aocc ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Linux dependencies
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
@ -28,6 +29,7 @@ jobs:
|
||||
sudo apt install -y m4 flex bison cmake libzip-dev openssl build-essential
|
||||
|
||||
- name: Install AOCC 4.1.0
|
||||
shell: bash
|
||||
run: |
|
||||
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar
|
||||
tar -xvf aocc-compiler-4.1.0.tar
|
||||
@ -74,7 +76,6 @@ jobs:
|
||||
LDFLAGS="-L/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib \
|
||||
-L/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib"
|
||||
|
||||
# BUILD
|
||||
- name: Autotools Build
|
||||
shell: bash
|
||||
env:
|
||||
@ -84,8 +85,6 @@ jobs:
|
||||
make -j3
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
# NORMAL
|
||||
- name: Autotools Run Tests
|
||||
env:
|
||||
NPROCS: 2
|
||||
@ -94,7 +93,6 @@ jobs:
|
||||
make check -j
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# INSTALL (note that this runs even when we don't run the tests)
|
||||
- name: Autotools Install
|
||||
env:
|
||||
NPROCS: 2
|
@ -16,9 +16,10 @@ jobs:
|
||||
name: "aocc ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Linux dependencies
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
@ -28,6 +29,7 @@ jobs:
|
||||
sudo apt install -y m4 flex bison cmake libzip-dev openssl build-essential
|
||||
|
||||
- name: Install AOCC 4.1.0
|
||||
shell: bash
|
||||
run: |
|
||||
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar
|
||||
tar -xvf aocc-compiler-4.1.0.tar
|
||||
@ -56,7 +58,7 @@ jobs:
|
||||
make
|
||||
make install
|
||||
|
||||
- name: CMake Configure with aocc
|
||||
- name: CMake Configure
|
||||
shell: bash
|
||||
run: |
|
||||
export LD_LIBRARY_PATH=/home/runner/work/hdf5/hdf5/aocc-compiler-4.1.0/lib:/home/runner/work/hdf5/hdf5/openmpi-4.1.5-install/lib:/usr/local/lib
|
||||
@ -77,14 +79,12 @@ jobs:
|
||||
$GITHUB_WORKSPACE
|
||||
#cat src/libhdf5.settings
|
||||
|
||||
# BUILD
|
||||
- name: CMake Build
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
- name: CMake Run Tests
|
||||
shell: bash
|
||||
run: |
|
10
.github/workflows/autotools.yml
vendored
10
.github/workflows/autotools.yml
vendored
@ -73,6 +73,14 @@ jobs:
|
||||
|
||||
call-release-auto-aocc:
|
||||
name: "Autotools aocc Workflows"
|
||||
uses: ./.github/workflows/aocc-ompi-auto.yml
|
||||
uses: ./.github/workflows/aocc-auto.yml
|
||||
with:
|
||||
build_mode: "production"
|
||||
|
||||
call-release-auto-cygwin:
|
||||
name: "Autotools Cygwin Workflows"
|
||||
uses: ./.github/workflows/cygwin-auto.yml
|
||||
with:
|
||||
build_mode: "production"
|
||||
|
||||
|
11
.github/workflows/cmake.yml
vendored
11
.github/workflows/cmake.yml
vendored
@ -75,7 +75,14 @@ jobs:
|
||||
build_mode: "Release"
|
||||
|
||||
call-release-cmake-aocc:
|
||||
name: "CMake nvhpc Workflows"
|
||||
uses: ./.github/workflows/aocc-ompi-cmake.yml
|
||||
name: "CMake aocc Workflows"
|
||||
uses: ./.github/workflows/aocc-cmake.yml
|
||||
with:
|
||||
build_mode: "Release"
|
||||
|
||||
call-release-cmake-cygwin:
|
||||
name: "CMake Cygwin Workflows"
|
||||
uses: ./.github/workflows/cygwin-cmake.yml
|
||||
with:
|
||||
build_mode: "Release"
|
||||
|
62
.github/workflows/cygwin-auto.yml
vendored
Normal file
62
.github/workflows/cygwin-auto.yml
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
name: hdf5 dev autotools cygwin
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
cygwin_build_and_test:
|
||||
name: "cygwin ${{ inputs.build_mode }}"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Set git to use LF
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Cygwin
|
||||
uses: cygwin/cygwin-install-action@master
|
||||
with:
|
||||
packages: autoconf automake make gcc-fortran libtool zlib-devel m4 flex bison perl
|
||||
|
||||
- name: Autotools Configure
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
sh ./autogen.sh
|
||||
mkdir build
|
||||
cd build
|
||||
../configure \
|
||||
--enable-build-mode=${{ inputs.build_mode }} \
|
||||
--enable-shared \
|
||||
--enable-fortran
|
||||
|
||||
- name: Autotools Build
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
cd build
|
||||
make -j3
|
||||
|
||||
- name: Autotools Run Tests
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
cd build
|
||||
# make check -j ---- cache test fails
|
||||
|
||||
- name: Autotools Install
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
cd build
|
||||
make install
|
63
.github/workflows/cygwin-cmake.yml
vendored
Normal file
63
.github/workflows/cygwin-cmake.yml
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
name: hdf5 dev CMake cygwin
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
cygwin_build_and_test:
|
||||
name: "cygwin-${{ inputs.build_mode }}"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Set git to use LF
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Cygwin
|
||||
uses: cygwin/cygwin-install-action@master
|
||||
with:
|
||||
packages: cmake gcc-fortran make ninja zlib-devel flex bison perl
|
||||
|
||||
- name: CMake Configure
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -C ../config/cmake/cacheinit.cmake \
|
||||
-G Ninja \
|
||||
--log-level=VERBOSE \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
|
||||
-DLIBAEC_USE_LOCALCONTENT=OFF \
|
||||
-DZLIB_USE_LOCALCONTENT=OFF \
|
||||
-DHDF5_BUILD_FORTRAN:BOOL=ON \
|
||||
-DHDF5_BUILD_JAVA:BOOL=OFF \
|
||||
..
|
||||
|
||||
- name: CMake Build
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
cd build
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
|
||||
- name: CMake Run Tests
|
||||
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}'
|
||||
run: |
|
||||
export PATH=/usr/bin:$PATH
|
||||
cd build
|
||||
ctest . --parallel 2 -C ${{ inputs.build_mode }} -V
|
||||
# ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R "FORTRAN|H5TEST"
|
83
.github/workflows/intel-auto.yml
vendored
83
.github/workflows/intel-auto.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: hdf5 dev autotools icx CI
|
||||
name: hdf5 dev autotools icx
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
@ -12,49 +12,33 @@ permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
Intel_build_and_test:
|
||||
name: "Intel ${{ inputs.build_mode }}"
|
||||
intel_oneapi_linux:
|
||||
name: "linux-oneapi ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install autoconf automake libtool libtool-bin libaec-dev
|
||||
|
||||
- name: Add oneAPI to apt
|
||||
shell: bash
|
||||
run: |
|
||||
cd /tmp
|
||||
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
sudo add-apt-repository -y "deb https://apt.repos.intel.com/oneapi all main"
|
||||
|
||||
- name: Install oneAPI dpcpp and fortran compiler
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y intel-oneapi-compiler-dpcpp-cpp
|
||||
sudo apt install -y intel-oneapi-compiler-fortran
|
||||
sudo apt install -y intel-oneapi-mpi-devel
|
||||
sudo apt-get install doxygen graphviz
|
||||
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
||||
echo "CC=icx" >> $GITHUB_ENV
|
||||
echo "CXX=icpx" >> $GITHUB_ENV
|
||||
echo "FC=ifx" >> $GITHUB_ENV
|
||||
|
||||
- name: Install oneAPI MKL library
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt install -y intel-oneapi-mkl-devel
|
||||
- name: Install oneAPI (Linux)
|
||||
uses: fortran-lang/setup-fortran@v1
|
||||
id: setup-fortran
|
||||
with:
|
||||
compiler: intel
|
||||
version: '2024.0'
|
||||
|
||||
- name: Autotools Configure
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
CC: ${{ steps.setup-fortran.outputs.cc }}
|
||||
CXX: ${{ steps.setup-fortran.outputs.cxx }}
|
||||
run: |
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin
|
||||
sh ./autogen.sh
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
@ -63,37 +47,42 @@ jobs:
|
||||
--enable-shared \
|
||||
--disable-fortran
|
||||
|
||||
# BUILD
|
||||
- name: Autotools Build
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
CC: ${{ steps.setup-fortran.outputs.cc }}
|
||||
CXX: ${{ steps.setup-fortran.outputs.cxx }}
|
||||
run: |
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin
|
||||
make -j3
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
# NORMAL
|
||||
- name: Autotools Run Tests
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
CC: ${{ steps.setup-fortran.outputs.cc }}
|
||||
CXX: ${{ steps.setup-fortran.outputs.cxx }}
|
||||
run: |
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin
|
||||
export SYCL_DEVICE_FILTER=opencl.cpu
|
||||
make check -j2
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# INSTALL (note that this runs even when we don't run the tests)
|
||||
- name: Autotools Install
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
CC: ${{ steps.setup-fortran.outputs.cc }}
|
||||
CXX: ${{ steps.setup-fortran.outputs.cxx }}
|
||||
run: |
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin
|
||||
export SYCL_DEVICE_FILTER=opencl.cpu
|
||||
make install
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: Autotools Verify Install
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
CC: ${{ steps.setup-fortran.outputs.cc }}
|
||||
CXX: ${{ steps.setup-fortran.outputs.cxx }}
|
||||
run: |
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
export PATH=$PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/bin
|
||||
export SYCL_DEVICE_FILTER=opencl.cpu
|
||||
make check-install
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
56
.github/workflows/intel-cmake.yml
vendored
56
.github/workflows/intel-cmake.yml
vendored
@ -1,6 +1,5 @@
|
||||
name: hdf5 dev CMake icx CI
|
||||
name: hdf5 dev CMake icx
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on a call
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@ -13,30 +12,28 @@ permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
# Linux (Ubuntu) w/ gcc + CMake
|
||||
#
|
||||
Intel_oneapi_linux:
|
||||
name: "ubuntu-oneapi ${{ inputs.build_mode }}"
|
||||
intel_oneapi_linux:
|
||||
name: "linux-oneapi ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources (Linux)
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
# Only CMake need ninja-build, but we just install it unilaterally
|
||||
# libssl, etc. are needed for the ros3 VFD
|
||||
- name: Install Linux Dependencies
|
||||
- name: Install Dependencies (Linux)
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get install ninja-build doxygen graphviz
|
||||
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
||||
|
||||
- name: add oneAPI to env
|
||||
- name: Install oneAPI (Linux)
|
||||
uses: fortran-lang/setup-fortran@v1
|
||||
id: setup-fortran
|
||||
with:
|
||||
compiler: intel
|
||||
version: '2023.2'
|
||||
version: '2024.0'
|
||||
|
||||
- name: CMake Configure with oneapi
|
||||
- name: CMake Configure (Linux)
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
@ -45,14 +42,15 @@ jobs:
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
cmake -C ${{ github.workspace }}/config/cmake/cacheinit.cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DLIBAEC_USE_LOCALCONTENT=OFF \
|
||||
-DZLIB_USE_LOCALCONTENT=OFF \
|
||||
$GITHUB_WORKSPACE
|
||||
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
|
||||
-G Ninja \
|
||||
--log-level=VERBOSE \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DLIBAEC_USE_LOCALCONTENT=OFF \
|
||||
-DZLIB_USE_LOCALCONTENT=OFF \
|
||||
$GITHUB_WORKSPACE
|
||||
|
||||
# BUILD
|
||||
- name: CMake Build
|
||||
- name: CMake Build (Linux)
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
@ -62,8 +60,7 @@ jobs:
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
- name: CMake Run Tests
|
||||
- name: CMake Run Tests (Linux)
|
||||
shell: bash
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
@ -77,19 +74,20 @@ jobs:
|
||||
name: "windows-oneapi ${{ inputs.build_mode }}"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources (Windows)
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies (Windows)
|
||||
run: choco install ninja
|
||||
|
||||
- name: add oneAPI to env
|
||||
- name: install oneAPI (Windows)
|
||||
uses: fortran-lang/setup-fortran@v1
|
||||
id: setup-fortran
|
||||
with:
|
||||
compiler: intel
|
||||
version: '2023.2'
|
||||
version: '2024.0'
|
||||
|
||||
- name: CMake Configure with oneapi
|
||||
- name: CMake Configure (Windows)
|
||||
shell: pwsh
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
@ -100,8 +98,7 @@ jobs:
|
||||
Set-Location -Path "${{ runner.workspace }}\\build"
|
||||
cmake -C ${{ github.workspace }}/config/cmake/cacheinit.cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} -DHDF5_BUILD_FORTRAN=ON -DLIBAEC_USE_LOCALCONTENT=OFF -DZLIB_USE_LOCALCONTENT=OFF ${{ github.workspace }}
|
||||
|
||||
# BUILD
|
||||
- name: CMake Build
|
||||
- name: CMake Build (Windows)
|
||||
shell: pwsh
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
@ -111,8 +108,7 @@ jobs:
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
- name: CMake Run Tests
|
||||
- name: CMake Run Tests (Windows)
|
||||
shell: pwsh
|
||||
env:
|
||||
FC: ${{ steps.setup-fortran.outputs.fc }}
|
||||
|
4
.github/workflows/main-auto.yml
vendored
4
.github/workflows/main-auto.yml
vendored
@ -51,7 +51,6 @@ jobs:
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
# AUTOTOOLS CONFIGURE
|
||||
- name: Autotools Configure
|
||||
run: |
|
||||
sh ./autogen.sh
|
||||
@ -92,13 +91,10 @@ jobs:
|
||||
shell: bash
|
||||
if: ${{ inputs.thread_safety == 'enable' }}
|
||||
|
||||
# BUILD
|
||||
- name: Autotools Build
|
||||
run: make -j3
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
# NORMAL
|
||||
- name: Autotools Run Tests
|
||||
run: make check -j2
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
23
.github/workflows/main-cmake.yml
vendored
23
.github/workflows/main-cmake.yml
vendored
@ -107,8 +107,6 @@ jobs:
|
||||
generator: "-G Ninja"
|
||||
run_tests: true
|
||||
|
||||
|
||||
|
||||
# Sets the job's name from the properties
|
||||
name: "${{ matrix.name }}-${{ inputs.build_mode }}-${{ inputs.thread_safety }}"
|
||||
|
||||
@ -120,18 +118,11 @@ jobs:
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
|
||||
#
|
||||
# SETUP
|
||||
#
|
||||
|
||||
#Useful for debugging
|
||||
- name: Dump matrix context
|
||||
run: echo '${{ toJSON(matrix) }}'
|
||||
|
||||
# Only CMake need ninja-build, but we just install it unilaterally
|
||||
# libssl, etc. are needed for the ros3 VFD
|
||||
- name: Install Linux Dependencies
|
||||
- name: Install CMake Dependencies (Linux)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get install ninja-build graphviz
|
||||
@ -171,13 +162,13 @@ jobs:
|
||||
#
|
||||
# CMAKE CONFIGURE
|
||||
#
|
||||
|
||||
- name: CMake Configure
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
|
||||
${{ matrix.generator }} \
|
||||
--log-level=VERBOSE \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DHDF5_ENABLE_ALL_WARNINGS=ON \
|
||||
@ -198,7 +189,6 @@ jobs:
|
||||
shell: bash
|
||||
if: ${{ inputs.thread_safety != 'TS' }}
|
||||
|
||||
|
||||
- name: CMake Configure (Thread-Safe)
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
@ -229,7 +219,6 @@ jobs:
|
||||
#
|
||||
# BUILD
|
||||
#
|
||||
|
||||
- name: CMake Build
|
||||
run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
@ -237,25 +226,17 @@ jobs:
|
||||
#
|
||||
# RUN TESTS
|
||||
#
|
||||
|
||||
# NORMAL
|
||||
|
||||
- name: CMake Run Tests
|
||||
run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
if: ${{ matrix.run_tests && (inputs.thread_safety != 'TS') }}
|
||||
|
||||
# THREAD-SAFE
|
||||
|
||||
- name: CMake Run Thread-Safe Tests
|
||||
run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -V -R ttsafe
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
if: ${{ matrix.run_tests && (inputs.thread_safety == 'TS') }}
|
||||
|
||||
#
|
||||
# INSTALL (note that this runs even when we don't run the tests)
|
||||
#
|
||||
|
||||
- name: CMake Run Package
|
||||
run: cpack -C ${{ inputs.build_mode }} -V
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
6
.github/workflows/main.yml
vendored
6
.github/workflows/main.yml
vendored
@ -37,3 +37,9 @@ jobs:
|
||||
uses: ./.github/workflows/cmake.yml
|
||||
if: "!contains(github.event.head_commit.message, 'skip-ci')"
|
||||
|
||||
# workflow-msys2-autotools:
|
||||
# name: "CMake msys2 Workflows"
|
||||
# uses: ./.github/workflows/msys2-auto.yml
|
||||
# with:
|
||||
# build_mode: "production"
|
||||
# build_option: "--enable-production"
|
||||
|
91
.github/workflows/mingw-cmake.yml
vendored
Normal file
91
.github/workflows/mingw-cmake.yml
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
name: hdf5 dev CMake MinGW
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
shared:
|
||||
description: "shared true/false"
|
||||
required: true
|
||||
type: string
|
||||
netcdf:
|
||||
description: "netcdf true/false"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
mingw_build_and_test:
|
||||
name: "mingw-${{ inputs.build_mode }}-NC=${{ inputs.netcdf }}"
|
||||
if: "!contains(github.event.head_commit.message, 'skip-ci')"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get install -y ninja-build libtirpc-dev graphviz
|
||||
|
||||
- name: Install MinGW
|
||||
uses: egor-tensin/setup-mingw@v2
|
||||
with:
|
||||
platform: x64
|
||||
|
||||
- name: Install Doxygen
|
||||
uses: ssciwr/doxygen-install@v1
|
||||
with:
|
||||
version: "1.9.7"
|
||||
|
||||
- name: CMake Configure
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
|
||||
-G Ninja \
|
||||
--log-level=VERBOSE \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/config/toolchain/mingw64.cmake \
|
||||
-DBUILD_SHARED_LIBS:BOOL=${{ inputs.shared }} \
|
||||
-DHDF4_BUILD_EXAMPLES:BOOL=ON \
|
||||
-DBUILD_JPEG_WITH_PIC:BOOL=ON \
|
||||
-DHDF4_ENABLE_NETCDF:BOOL=${{ inputs.netcdf }} \
|
||||
-DHDF4_BUILD_FORTRAN:BOOL=OFF \
|
||||
-DHDF4_BUILD_JAVA:BOOL=OFF \
|
||||
-DHDF4_BUILD_DOC:BOOL=ON \
|
||||
-DJPEG_USE_LOCALCONTENT:BOOL=OFF \
|
||||
-DLIBAEC_USE_LOCALCONTENT:BOOL=OFF \
|
||||
-DZLIB_USE_LOCALCONTENT:BOOL=OFF \
|
||||
-DHDF4_PACK_EXAMPLES:BOOL=ON \
|
||||
-DHDF4_PACKAGE_EXTLIBS:BOOL=ON \
|
||||
$GITHUB_WORKSPACE
|
||||
|
||||
- name: CMake Build
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: CMake Run Tests
|
||||
shell: bash
|
||||
run: |
|
||||
ctest . --parallel 2 -C ${{ inputs.build_mode }} -V
|
||||
if: false
|
||||
|
||||
- name: CMake Package
|
||||
shell: bash
|
||||
run: |
|
||||
cpack -C ${{ inputs.build_mode }} -V
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: List files in the space
|
||||
run: |
|
||||
ls -l ${{ runner.workspace }}/build
|
66
.github/workflows/msys2-auto.yml
vendored
Normal file
66
.github/workflows/msys2-auto.yml
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
name: hdf5 dev Autotools MSys2
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
build_option:
|
||||
description: "--enable-production or --disable-production"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
msys2_build_and_test:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { icon: '⬛', sys: mingw32 }
|
||||
- { icon: '🟦', sys: mingw64 }
|
||||
- { icon: '🟨', sys: ucrt64 }
|
||||
- { icon: '🟧', sys: clang64 }
|
||||
name: ${{ matrix.icon }} msys2-${{ matrix.sys }}-${{ inputs.build_mode }}
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: '${{ matrix.icon }} Setup MSYS2'
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: ${{matrix.sys}}
|
||||
update: true
|
||||
install: >-
|
||||
git
|
||||
autotools
|
||||
pacboy: >-
|
||||
toolchain:p
|
||||
libjpeg-turbo:p
|
||||
|
||||
- name: Autotools Configure
|
||||
run: |
|
||||
sh ./autogen.sh
|
||||
mkdir "$GITHUB_WORKSPACE/build"
|
||||
cd "$GITHUB_WORKSPACE/build"
|
||||
LDFLAGS="-lws2_32" $GITHUB_WORKSPACE/configure \
|
||||
${{ inputs.build_option }} \
|
||||
--disable-netcdf \
|
||||
--enable-static-exec
|
||||
|
||||
- name: Autotools Build
|
||||
run: |
|
||||
make -j3
|
||||
working-directory: $GITHUB_WORKSPACE/build
|
||||
|
||||
- name: Autotools Run Tests
|
||||
run: |
|
||||
make check -j
|
||||
working-directory: $GITHUB_WORKSPACE/build
|
17
.github/workflows/nvhpc-auto.yml
vendored
17
.github/workflows/nvhpc-auto.yml
vendored
@ -16,9 +16,11 @@ jobs:
|
||||
name: "nvhpc ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install autoconf automake libtool libtool-bin libaec-dev
|
||||
@ -28,17 +30,17 @@ jobs:
|
||||
|
||||
- name: Install NVHPC
|
||||
shell: bash
|
||||
run: |
|
||||
run: |
|
||||
curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg
|
||||
echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y nvhpc-23-9
|
||||
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
|
||||
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
|
||||
echo "NVHPCSDK=/opt/nvidia/hpc_sdk" >> $GITHUB_ENV
|
||||
echo "OMPI_CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvc++" >> $GITHUB_ENV
|
||||
echo "OMPI_CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvc" >> $GITHUB_ENV
|
||||
echo "OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvfortran" >> $GITHUB_ENV
|
||||
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
|
||||
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
|
||||
echo "LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/lib" >> $GITHUB_ENV
|
||||
echo "DESTDIR=/tmp" >> $GITHUB_ENV
|
||||
|
||||
@ -56,9 +58,7 @@ jobs:
|
||||
--enable-fortran \
|
||||
--enable-shared \
|
||||
--enable-parallel
|
||||
#cat config.log
|
||||
|
||||
# BUILD
|
||||
- name: Autotools Build
|
||||
shell: bash
|
||||
run: |
|
||||
@ -66,16 +66,15 @@ jobs:
|
||||
make -j3
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
# NORMAL
|
||||
- name: Autotools Run Tests
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin:$PATH
|
||||
make check -j
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# INSTALL (note that this runs even when we don't run the tests)
|
||||
- name: Autotools Install
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin:$PATH
|
||||
make install
|
||||
|
14
.github/workflows/nvhpc-cmake.yml
vendored
14
.github/workflows/nvhpc-cmake.yml
vendored
@ -16,9 +16,10 @@ jobs:
|
||||
name: "nvhpc ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Linux dependencies
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
@ -33,16 +34,16 @@ jobs:
|
||||
echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y nvhpc-23-9
|
||||
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
|
||||
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
|
||||
echo "NVHPCSDK=/opt/nvidia/hpc_sdk" >> $GITHUB_ENV
|
||||
echo "OMPI_CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvc++" >> $GITHUB_ENV
|
||||
echo "OMPI_CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvc" >> $GITHUB_ENV
|
||||
echo "OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin/nvfortran" >> $GITHUB_ENV
|
||||
echo "CC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpicc" >> $GITHUB_ENV
|
||||
echo "FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin/mpifort" >> $GITHUB_ENV
|
||||
echo "LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/cuda/12.2/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/lib" >> $GITHUB_ENV
|
||||
echo "DESTDIR=/tmp" >> $GITHUB_ENV
|
||||
|
||||
- name: CMake Configure with nvc
|
||||
- name: CMake Configure
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.9/compilers/bin:$PATH
|
||||
@ -59,16 +60,13 @@ jobs:
|
||||
-DHDF5_BUILD_JAVA:BOOL=OFF \
|
||||
-DMPIEXEC_MAX_NUMPROCS:STRING="2" \
|
||||
$GITHUB_WORKSPACE
|
||||
cat src/libhdf5.settings
|
||||
|
||||
# BUILD
|
||||
- name: CMake Build
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
# RUN TESTS
|
||||
- name: CMake Run Tests
|
||||
shell: bash
|
||||
run: |
|
||||
|
@ -144,6 +144,8 @@ endif ()
|
||||
|
||||
if (CYGWIN)
|
||||
set (${HDF_PREFIX}_HAVE_LSEEK64 0)
|
||||
set (CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
|
||||
add_definitions ("-D_GNU_SOURCE")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -117,37 +117,6 @@ else ()
|
||||
set (CTEST_GIT_options "pull")
|
||||
endif ()
|
||||
set (CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}")
|
||||
else ()
|
||||
## --------------------------
|
||||
## use subversion to get source
|
||||
#-----------------------------------------------------------------------------
|
||||
## cygwin does not handle the find_package() call
|
||||
## --------------------------
|
||||
set (CTEST_UPDATE_COMMAND "SVNCommand")
|
||||
if (NOT SITE_CYGWIN})
|
||||
find_package (Subversion)
|
||||
set (CTEST_SVN_COMMAND "${Subversion_SVN_EXECUTABLE}")
|
||||
set (CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}")
|
||||
else ()
|
||||
set (CTEST_SVN_COMMAND "/usr/bin/svn")
|
||||
set (CTEST_UPDATE_COMMAND "/usr/bin/svn")
|
||||
endif ()
|
||||
|
||||
if (NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
|
||||
set (NEED_REPOSITORY_CHECKOUT 1)
|
||||
endif ()
|
||||
|
||||
if (NOT CTEST_REPO_VERSION)
|
||||
set (CTEST_REPO_VERSION "HEAD")
|
||||
endif ()
|
||||
if (${NEED_REPOSITORY_CHECKOUT})
|
||||
set (CTEST_CHECKOUT_COMMAND
|
||||
"\"${CTEST_SVN_COMMAND}\" co ${REPOSITORY_URL} \"${CTEST_SOURCE_DIRECTORY}\" -r ${CTEST_REPO_VERSION}")
|
||||
else ()
|
||||
if (CTEST_REPO_VERSION)
|
||||
set (CTEST_SVN_UPDATE_OPTIONS "-r ${CTEST_REPO_VERSION}")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
@ -1502,6 +1502,10 @@ case "$host_cpu-$host_vendor-$host_os" in
|
||||
AC_DEFINE([HAVE_MINGW], [1], [Define if using MinGW])
|
||||
H5_CPPFLAGS="-D_GNU_SOURCE -D__USE_MINGW_ANSI_STDIO $H5_CPPFLAGS"
|
||||
;;
|
||||
*cygwin*)
|
||||
AC_DEFINE([HAVE_CYGWIN], [1], [Define if using Cygwin])
|
||||
H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
|
||||
;;
|
||||
esac
|
||||
|
||||
## Need to add the AM_ and H5_ into CFLAGS/CPPFLAGS to make them visible
|
||||
|
Loading…
x
Reference in New Issue
Block a user