path4 #598
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run Cygwin-based tests | |
on: [push,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() }} |