mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-01-18 15:55:12 +08:00
159 lines
4.6 KiB
YAML
159 lines
4.6 KiB
YAML
name: Run Cygwin-based tests
|
|
|
|
on: [pull_request,workflow_dispatch]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow}}-${{ github.head_ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
SHELLOPTS: igncr
|
|
CHERE_INVOKING: 1
|
|
CYGWIN_NOWINPATH: 1
|
|
REMOTETESTDOWN: ${{ vars.REMOTETESTDOWN }}
|
|
|
|
jobs:
|
|
build-and-test-autotools:
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: C:/cygwin/bin/bash.exe -eo pipefail -o igncr "{0}"
|
|
|
|
name: Cygwin-based Autotools tests
|
|
|
|
strategy:
|
|
matrix:
|
|
plugin_dir_option: ["", "--without-plugin-dir"]
|
|
|
|
steps:
|
|
- name: Fix line endings
|
|
shell: pwsh
|
|
run: git config --global core.autocrlf input
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: cygwin/cygwin-install-action@v4
|
|
with:
|
|
platform: x86_64
|
|
install-dir: 'C:\cygwin'
|
|
packages: >-
|
|
git automake libtool autoconf2.5 make libhdf5-devel
|
|
libhdf4-devel zipinfo libxml2-devel perl zlib-devel
|
|
libzstd-devel libbz2-devel libaec-devel libzip-devel
|
|
libdeflate-devel gcc-core gcc-g++ libcurl-devel libiconv-devel
|
|
libssl-devel libcrypt-devel attr libattr-devel
|
|
|
|
- name: (Autotools) Run autoconf and friends
|
|
run: |
|
|
cp -f /bin/dash /bin/sh
|
|
mkdir m4
|
|
/bin/dash /usr/bin/libtoolize --force --copy --verbose
|
|
/usr/bin/autoreconf-2.69 --force --install --verbose --debug
|
|
|
|
- name: (Autotools) Configure in-tree build
|
|
run: >-
|
|
/bin/dash ./configure --enable-hdf5 --enable-shared
|
|
--disable-static --enable-dap --disable-dap-remote-tests
|
|
--enable-plugins ${{ matrix.plugin_dir_option }}
|
|
--disable-nczarr --disable-nczarr-filters
|
|
--disable-s3 --with-s3-testing=no
|
|
|
|
|
|
- name: Look at config.log if error
|
|
if: ${{ failure() }}
|
|
run: cat config.log
|
|
|
|
- name: Print summary
|
|
run: cat libnetcdf.settings
|
|
|
|
- name: (Autotools) Build library and utilities
|
|
run: make -j8 SHELL=/bin/dash
|
|
|
|
- name: (Autotools) Test DESTDIR install
|
|
run: |
|
|
make install DESTDIR=/tmp/pretend-root SHELL=/bin/dash
|
|
if [ -d "/tmp/pretend-root/$(pwd)" ];
|
|
then
|
|
find /tmp/pretend-root/$(pwd)
|
|
if [ $(find /tmp/pretend-root/$(pwd) -type f | wc -l) -gt 0 ]; then exit 1; fi
|
|
fi
|
|
|
|
- name: (Autotools) Build tests
|
|
timeout-minutes: 30
|
|
run: |
|
|
make check -j$(nproc) TESTS="" SHELL=/bin/dash
|
|
|
|
- name: (Autotools) Run tests
|
|
timeout-minutes: 30
|
|
run: |
|
|
make check -j$(nproc) SHELL=/bin/dash
|
|
|
|
build-and-test-cmake:
|
|
name: Cygwin-based CMake tests
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: C:/cygwin/bin/bash.exe -eo pipefail -o igncr "{0}"
|
|
|
|
steps:
|
|
|
|
- run: git config --global core.autocrlf input
|
|
shell: pwsh
|
|
- uses: actions/checkout@v4
|
|
- uses: cygwin/cygwin-install-action@v4
|
|
with:
|
|
platform: x86_64
|
|
install-dir: 'C:\cygwin'
|
|
packages: >-
|
|
git automake libtool autoconf2.5 make libhdf5-devel
|
|
libhdf4-devel zipinfo libxml2-devel perl zlib-devel
|
|
libzstd-devel libbz2-devel libaec-devel libzip-devel
|
|
libdeflate-devel gcc-core gcc-g++ libcurl-devel libiconv-devel
|
|
libssl-devel libcrypt-devel cmake ninja make m4 diffutils unzip
|
|
|
|
###
|
|
# Configure and build
|
|
###
|
|
|
|
- name: (CMake) Configure Build
|
|
env:
|
|
MAKE: "/usr/bin/make"
|
|
CXX: "/usr/bin/g++"
|
|
run: |
|
|
/usr/bin/cmake \
|
|
-G"Unix Makefiles" \
|
|
-B build \
|
|
-S . \
|
|
-DCMAKE_INSTALL_PREFIX=/tmp \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DNETCDF_ENABLE_NETCDF_4=ON \
|
|
-DNETCDF_BUILD_UTILITIES=ON \
|
|
-DNETCDF_ENABLE_TESTS=ON \
|
|
-DNETCDF_ENABLE_HDF5=ON \
|
|
-DNETCDF_ENABLE_NCZARR=TRUE \
|
|
-DNETCDF_ENABLE_PLUGINS=ON
|
|
if: ${{ success() }}
|
|
|
|
- name: (CMake) Look at CMakeCache.txt if error
|
|
run: cat build/CMakeCache.txt
|
|
if: ${{ failure() }}
|
|
|
|
- name: (CMake) Print Summary
|
|
run: cat build/libnetcdf.settings
|
|
|
|
- name: (CMake) Build All
|
|
env:
|
|
MAKE: "/usr/bin/make"
|
|
CXX: "/usr/bin/g++"
|
|
run: cmake --build build -j$(nproc)
|
|
if: ${{ success() }}
|
|
|
|
- name: (CMake) Run Tests
|
|
run: PATH=$PWD/build:$PATH ctest --test-dir build
|
|
if: ${{ success() }}
|
|
|
|
- name: (CMake) Verbose output of CTest failures
|
|
run: >-
|
|
PATH=$PWD/build:$PATH ctest --test-dir build --output-on-failure -j$(nproc) --rerun-failed -VV
|
|
if: ${{ failure() }}
|