From 1ba45b9e9a800812d8030dab887686a45d44210b Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 30 Nov 2020 11:21:51 -0700 Subject: [PATCH] Adding github actions to netcdf-c for CI purposes. --- .github/workflows/conda-env/1.10.7.txt | 22 +++++ .github/workflows/conda-env/1.8.20.txt | 29 ++++++ .github/workflows/github-actions-ci.yml | 124 ++++++++++++++++++++++++ 3 files changed, 175 insertions(+) create mode 100644 .github/workflows/conda-env/1.10.7.txt create mode 100644 .github/workflows/conda-env/1.8.20.txt create mode 100644 .github/workflows/github-actions-ci.yml diff --git a/.github/workflows/conda-env/1.10.7.txt b/.github/workflows/conda-env/1.10.7.txt new file mode 100644 index 000000000..527910d50 --- /dev/null +++ b/.github/workflows/conda-env/1.10.7.txt @@ -0,0 +1,22 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +_libgcc_mutex=0.1=main +binutils_impl_linux-64=2.31.1=h6176602_1 +binutils_linux-64=2.31.1=h6176602_9 +ca-certificates=2020.10.14=0 +curl=7.71.1=hbc83047_1 +gcc_impl_linux-64=7.3.0=habb00fd_1 +gcc_linux-64=7.3.0=h553295d_9 +hdf5=1.10.7=hb1b8bf9_0 +krb5=1.18.2=h173b8e3_0 +libcurl=7.71.1=h20c2e04_1 +libedit=3.1.20191231=h14c3975_1 +libgcc=7.2.0=h69d50b8_2 +libgcc-ng=9.1.0=hdf63c60_0 +libgfortran-ng=7.3.0=hdf63c60_0 +libssh2=1.9.0=h1ba5d50_1 +libstdcxx-ng=9.1.0=hdf63c60_0 +ncurses=6.2=he6710b0_1 +openssl=1.1.1h=h7b6447c_0 +zlib=1.2.11=h7b6447c_3 diff --git a/.github/workflows/conda-env/1.8.20.txt b/.github/workflows/conda-env/1.8.20.txt new file mode 100644 index 000000000..ed49267aa --- /dev/null +++ b/.github/workflows/conda-env/1.8.20.txt @@ -0,0 +1,29 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +_libgcc_mutex=0.1=main +binutils_impl_linux-64=2.31.1=h6176602_1 +binutils_linux-64=2.31.1=h6176602_9 +bzip2=1.0.8=h7b6447c_0 +ca-certificates=2020.10.14=0 +cmake=3.18.2=ha30ef3c_0 +expat=2.2.10=he6710b0_2 +gcc_impl_linux-64=7.3.0=habb00fd_1 +gcc_linux-64=7.3.0=h553295d_9 +hdf5=1.8.20=hba1933b_1 +krb5=1.18.2=h173b8e3_0 +libcurl=7.71.1=h20c2e04_1 +libedit=3.1.20191231=h14c3975_1 +libgcc=7.2.0=h69d50b8_2 +libgcc-ng=9.1.0=hdf63c60_0 +libgfortran-ng=7.3.0=hdf63c60_0 +libssh2=1.9.0=h1ba5d50_1 +libstdcxx-ng=9.1.0=hdf63c60_0 +libuv=1.40.0=h7b6447c_0 +lz4-c=1.9.2=heb0550a_3 +ncurses=6.2=he6710b0_1 +openssl=1.1.1h=h7b6447c_0 +rhash=1.4.0=h1ba5d50_0 +xz=5.2.5=h7b6447c_0 +zlib=1.2.11=h7b6447c_3 +zstd=1.4.5=h9ceee32_0 diff --git a/.github/workflows/github-actions-ci.yml b/.github/workflows/github-actions-ci.yml new file mode 100644 index 000000000..0ade0181e --- /dev/null +++ b/.github/workflows/github-actions-ci.yml @@ -0,0 +1,124 @@ +name: test-github-actions +on: [push] +jobs: + autotools: + runs-on: ubuntu-latest + strategy: + matrix: + hdf5: [ 1.8.20, 1.10.7 ] + use_nc4: [ nc3, nc4 ] + use_dap: [ dap_off, dap_on ] + steps: + - name: Set up Included Actions + uses: actions/checkout@v2 + - name: Install Conda ${{ matrix.hdf5 }} + uses: conda-incubator/setup-miniconda@v2 + with: + activate-environment: ${{ matrix.hdf5 }} + environment-file: .github/workflows/conda-env/${{ matrix.hdf5 }}.txt + +### +# Set environmental variables (for configuring) +### + + - run: echo "ENABLE_NC4=--disable-netcdf-4" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc3' + - run: echo "ENABLE_NC4=--enable-netcdf-4" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc4' + + - run: echo "ENABLE_DAP=--disable-dap" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_off' + - run: echo "ENABLE_DAP=--enable-dap" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_on' + +### +# Configure and Build and Run Tests +### + + - name: Autoreconf + shell: bash -l {0} + run: autoreconf -if + - name: Configure + shell: bash -l {0} + run: ./configure ${ENABLE_NC4_AC} ${ENABLE_DAP} + - name: Build + shell: bash -l {0} + run: make -j && make check TESTS="" -j + - name: Test + shell: bash -l {0} + run: make check -j + +##### +# End Autotools Testing +##### + +##### +# CMake Testing +##### + + cmake: + runs-on: ubuntu-latest + strategy: + matrix: + hdf5: [ 1.8.20, 1.10.7 ] + use_nc4: [ nc3, nc4 ] + use_dap: [ dap_off, dap_on ] + steps: + - name: Set up Included Actions + uses: actions/checkout@v2 + - name: Install Conda ${{ matrix.hdf5 }} + uses: conda-incubator/setup-miniconda@v2 + with: + activate-environment: ${{ matrix.hdf5 }} + environment-file: .github/workflows/conda-env/${{ matrix.hdf5 }}.txt + + #- name: Query User + # run: whoami + #- name: Query System + # run: uname -a + #- name: Directory Info + # run: pwd && ls + #- name: Query Conda + # shell: bash -l {0} + # run: conda list + #- name: Query HDF5 + # shell: bash -l {0} + # run: which h5dump + #- name: Run autoreconf + # shell: bash -l {0} + # run: autoreconf -if + +### +# Set environmental variables (for configuring) +### + - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV + + - run: echo "ENABLE_NC_NC4=OFF" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc3' + - run: echo "ENABLE_NC_NC4=ON" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc4' + + - run: echo "ENABLE_NC_DAP=OFF" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_off' + - run: echo "ENABLE_NC_DAP=ON" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_on' + +### +# Configure and Build and Run Tests +### + + - name: Create build directory. + shell: bash -l {0} + run: mkdir build && cd build && pwd + #- name: Sanity Check + # shell: bash -l {0} + # run: pwd && ls && ls .. + - name: cmake + shell: bash -l {0} + run: cd build && cmake .. -DENABLE_NETCDF_4=${ENABLE_NC_NC4} -DENABLE_DAP=${ENABLE_NC_DAP} + - name: build + shell: bash -l {0} + run: cd build && make -j + - name: Test + shell: bash -l {0} + run: cd build && make test -j