diff --git a/.github/workflows/run_tests_win_mingw.yml b/.github/workflows/run_tests_win_mingw.yml index 73d6000e51..55386900f2 100644 --- a/.github/workflows/run_tests_win_mingw.yml +++ b/.github/workflows/run_tests_win_mingw.yml @@ -74,3 +74,67 @@ jobs: path: | */*.log */*.trs + + build-and-test-cmake: + + runs-on: windows-latest + strategy: + matrix: + msystem: [ MINGW64, UCRT64] #, CLANG64 ] + defaults: + run: + shell: msys2 {0} + + steps: + + - uses: actions/checkout@v4 + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + update: true + pacboy: cc:p cmake:p hdf5:p curl:p libxml2:p zlib:p blosc:p bzip2:p + install: make m4 diffutils git unzip + +### +# Configure and build +### + + - name: (CMake) Configure Build + run: | + LDFLAGS="-Wl,--export-all-symbols" \ + cmake \ + -G"MSYS Makefiles" \ + -B build \ + -S . \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + -DBUILD_SHARED_LIBS=ON \ + -DNETCDF_ENABLE_NETCDF_4=ON \ + -DNETCDF_ENABLE_DAP=ON \ + -DNETCDF_BUILD_UTILITIES=ON \ + -DNETCDF_ENABLE_TESTS=ON \ + -DNETCDF_ENABLE_HDF5=ON \ + -DNETCDF_ENABLE_DAP=TRUE \ + -DNETCDF_ENABLE_NCZARR=TRUE \ + -DNETCDF_ENABLE_DAP_LONG_TESTS=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 + 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() }}