name: netCDF dev # Triggers the workflow on push or pull request or on demand on: workflow_dispatch: push: paths-ignore: - '.github/CODEOWNERS' - '.github/FUNDING.yml' - 'docs/**' - 'release_docs/**' - 'ACKNOWLEDGEMENTS' - 'LICENSE**' - '**.md' pull_request: branches: [ develop ] paths-ignore: - '.github/CODEOWNERS' - '.github/FUNDING.yml' - 'docs/**' - 'release_docs/**' - 'ACKNOWLEDGEMENTS' - 'LICENSE**' - '**.md' permissions: contents: read # Using concurrency to cancel any in-progress job or run concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - name: Install System dependencies run: | sudo apt-get update sudo apt-get install ninja-build sudo apt install libssl3 libssl-dev libcurl4 sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl libtool libtool-bin - name: Checkout HDF5 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false # Prevents tokens from being written to Git config files - name: Configure env: RUNNER_WORKSPACE: ${{ runner.workspace }} 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=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_STATIC_LIBS=OFF \ -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ -DHDF5_BUILD_CPP_LIB:BOOL=OFF \ -DHDF5_BUILD_FORTRAN:BOOL=OFF \ -DHDF5_BUILD_JAVA:BOOL=OFF \ -DHDF5_BUILD_DOC:BOOL=OFF \ -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON \ -DZLIB_USE_LOCALCONTENT:BOOL=OFF \ -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON \ -DBUILD_TESTING:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=/usr/local \ $GITHUB_WORKSPACE shell: bash - name: Build run: cmake --build . --parallel 3 --config Release working-directory: ${{ runner.workspace }}/build - name: Install HDF5 run: | sudo cmake --install . --config Release --prefix="/usr/local" working-directory: ${{ runner.workspace }}/build - name: Checkout netCDF uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false # Prevents tokens from being written to Git config files repository: unidata/netcdf-c path: netcdf-c - name: Test netCDF run: | cd netcdf-c autoreconf -if # NOTE: --disable-byterange should be removed when the HTTP VFD has been updated CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ./configure --enable-hdf5 --enable-dap --disable-dap-remote-tests --disable-byterange --enable-external-server-tests cat config.log cat libnetcdf.settings CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j LD_LIBRARY_PATH="/home/runner/work/hdf5/hdf5/netcdf-c/liblib/.libs:/usr/local/lib:${LD_LIBRARY_PATH}" CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j