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:
Allen Byrne 2024-03-14 09:16:53 -05:00 committed by GitHub
parent 782c0e5a8c
commit 112f445019
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 399 additions and 164 deletions

View File

@ -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

View File

@ -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: |

View File

@ -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"

View File

@ -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
View 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
View 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"

View File

@ -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

View File

@ -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 }}

View File

@ -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

View File

@ -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

View File

@ -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
View 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
View 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

View File

@ -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

View File

@ -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: |

View File

@ -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 ()
#-----------------------------------------------------------------------------

View File

@ -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 ()

View File

@ -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