# This is a basic workflow to help you get started with Actions name: SEACAS no-hdf5-netcdf builds # Controls when the action will run. Triggers the workflow on push on: push: branches: - master pull_request: branches: - master jobs: build-deps: runs-on: ubuntu-latest strategy: matrix: compiler: [ gnu, clang, mpi ] netcdf: [ 4.9.2 ] steps: - uses: actions/checkout@v3 - name: Install System dependencies shell: bash -l {0} run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openmpi-bin libopenmpi-dev ### # Installing TPL ### - name: Cache TPL-${{ matrix.compiler }}-${{ matrix.netcdf }} id: cache-TPL-mpi uses: actions/cache@v3 with: path: ~/environments/${{ matrix.compiler }}-${{ matrix.netcdf }} key: TPL-v4-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.netcdf }} - name: Build TPL-${{ matrix.compiler }}-${{ matrix.netcdf }} if: steps.cache-TPL.outputs.cache-hit != 'true' run: | set -x COMPILER=${{ matrix.compiler }} HDF5=NO GNU_PARALLEL=OFF INSTALL_PATH=${HOME}/environments/${{ matrix.compiler }}-${{ matrix.netcdf }} ./install-tpl.sh ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.compiler }}-${{ matrix.netcdf }} && ls ${HOME}/environments/${{ matrix.compiler }}-${{ matrix.netcdf }}/lib build: needs: build-deps # The type of runner that the job will run on name: ${{ matrix.config.name }} runs-on: ${{ matrix.config.os }} strategy: fail-fast: false matrix: netcdf: [ 4.9.2 ] config: - { name: "Debug serial build", os: ubuntu-latest, compiler: "gnu", debug: "YES", extra: "", } - { name: "Debug parallel build", os: ubuntu-latest, compiler: "mpi", debug: "YES", extra: "", } - { name: "Use modern CMake configure of netCDF package", os: ubuntu-latest, compiler: "mpi", debug: "NO", extra: "MODERN=YES", } steps: - uses: actions/checkout@v3 - name: Install System dependencies shell: bash -l {0} run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openmpi-bin libopenmpi-dev - name: Fetch TPL Cache id: cache-TPL uses: actions/cache@v3 with: path: ~/environments/${{ matrix.config.compiler }}-${{ matrix.netcdf }} key: TPL-v4-${{ runner.os }}-${{ matrix.config.compiler }}-${{ matrix.netcdf }} - name: Check Cache shell: bash -l {0} run: ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.netcdf }} && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.netcdf }}/lib ### # Configure and build ### - name: Run cmake shell: bash -l {0} run: | echo $HOME mkdir build cd build NUMPROCS=2 ${{ matrix.config.extra }} DEBUG=${{ matrix.config.debug }} COMPILER=${{ matrix.config.compiler }} INSTALL_PATH=${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.netcdf }} bash ../cmake-config - name: Build shell: bash -l {0} run: | cd build make -j 4 if: ${{ success() }} - name: Install shell: bash -l {0} run: | cd build make -j 4 install if: ${{ success() }} - name: Run Tests shell: bash -l {0} run: | cd build ctest -j 4 --output-on-failure if: ${{ success() }}