diff --git a/.github/workflows/gnu.yml b/.github/workflows/gnu.yml deleted file mode 100644 index 0e791ed46..000000000 --- a/.github/workflows/gnu.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: GNU Linux Build -on: [push, pull_request, workflow_dispatch] - -# Cancel in-progress workflows when pushing to a branch -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -env: - cache_key: gnu8 - CC: gcc-10 - FC: gfortran-10 - CXX: g++-10 - - -# Split into a steup step, and a WW3 build step which -# builds multiple switches in a matrix. The setup is run once and -# the environment is cached so each build of WW3 can share the dependencies. - -jobs: - setup: - runs-on: ubuntu-latest - - steps: - - name: checkout-ww3 - if: steps.cache-env.outputs.cache-hit != 'true' - uses: actions/checkout@v2 - with: - path: ww3 - # Cache spack, OASIS, and compiler - # No way to flush Action cache, so key may have # appended - - name: cache-env - id: cache-env - uses: actions/cache@v2 - with: - path: | - spack - ~/.spack - work_oasis3-mct - key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_gnu.yaml') }} - - # Build WW3 spack environment - - name: install-dependencies-with-spack - if: steps.cache-env.outputs.cache-hit != 'true' - run: | - # Install NetCDF, ESMF, g2, etc using Spack - sudo apt install cmake - git clone -c feature.manyFiles=true https://github.com/spack/spack.git - source spack/share/spack/setup-env.sh - spack env create ww3-gnu ww3/model/ci/spack_gnu.yaml - spack env activate ww3-gnu - spack compiler find - spack external find cmake - spack add mpich@3.4.2 - spack concretize - spack install --dirty -v - - - name: build-oasis - if: steps.cache-env.outputs.cache-hit != 'true' - run: | - source spack/share/spack/setup-env.sh - spack env activate ww3-gnu - export WWATCH3_DIR=${GITHUB_WORKSPACE}/ww3/model - export OASIS_INPUT_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/oasis3-mct - export OASIS_WORK_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct - cd ww3/regtests/ww3_tp2.14/input/oasis3-mct/util/make_dir - cmake . - make VERBOSE=1 - cp -r ${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct ${GITHUB_WORKSPACE} - - build: - needs: setup - strategy: - matrix: - switch: [Ifremer1, NCEP_st2, NCEP_st4, ite_pdlib, NCEP_st4sbs, NCEP_glwu, OASACM, UKMO, MULTI_ESMF, NUOPC_MESH] - runs-on: ubuntu-latest - - steps: - - name: checkout-ww3 - uses: actions/checkout@v2 - with: - path: ww3 - - - name: cache-env - id: cache-env - uses: actions/cache@v2 - with: - path: | - spack - ~/.spack - work_oasis3-mct - key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_gnu.yaml') }} - - - name: build-ww3 - run: | - source spack/share/spack/setup-env.sh - spack env activate ww3-gnu - cd ww3 - export CC=mpicc - export FC=mpif90 - export OASISDIR=${GITHUB_WORKSPACE}/work_oasis3-mct - mkdir build && cd build - if [[ ${{ matrix.switch }} == "MULTI_ESMF" ]]; then - cmake .. -DUFS_CAP=MULTI_ESMF -DSWITCH=multi_esmf - elif [[ ${{ matrix.switch }} == "NUOPC_MESH" ]]; then - cmake .. -DUFS_CAP=NUOPC_MESH -DSWITCH=meshcap - else - cmake .. -DSWITCH=${{ matrix.switch }} - fi - make -j2 VERBOSE=1 diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml deleted file mode 100644 index e3be5d48d..000000000 --- a/.github/workflows/intel.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: Intel Linux Build -on: [push, pull_request, workflow_dispatch] - -# Cancel in-progress workflows when pushing to a branch -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -# Set I_MPI_CC/F90 so Intel MPI wrapper uses icc/ifort instead of gcc/gfortran -env: - cache_key: intel7 - CC: icc - FC: ifort - CXX: icpc - I_MPI_CC: icc - I_MPI_F90: ifort - -# Split into a dependency build step, and a WW3 build step which -# builds multiple switches in a matrix. The setup is run once and -# the environment is cached so each build of WW3 can share the dependencies. - -jobs: - setup: - runs-on: ubuntu-20.04 - - steps: - - - name: checkout-ww3 - if: steps.cache-env.outputs.cache-hit != 'true' - uses: actions/checkout@v2 - with: - path: ww3 - - # Cache spack, OASIS, and compiler - # No way to flush Action cache, so key may have # appended - - name: cache-env - id: cache-env - uses: actions/cache@v2 - with: - path: | - spack - ~/.spack - work_oasis3-mct - /opt/intel - key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_intel.yaml') }} - - - name: install-intel-compilers - if: steps.cache-env.outputs.cache-hit != 'true' - run: | - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - sudo apt-get install intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic - - # Build WW3 spack environment - - name: install-dependencies-with-spack - if: steps.cache-env.outputs.cache-hit != 'true' - run: | - # Install NetCDF, ESMF, g2, etc using Spack - . /opt/intel/oneapi/setvars.sh - sudo mv /usr/local /usrlocal_renamed - sudo apt install cmake - git clone -c feature.manyFiles=true https://github.com/spack/spack.git - source spack/share/spack/setup-env.sh - ln -s $(realpath $(which gcc)) spack/lib/spack/env/intel/gcc # spack/make bug in ESMF - spack env create ww3-intel ww3/model/ci/spack_intel.yaml - spack env activate ww3-intel - spack compiler find - spack external find cmake - spack add intel-oneapi-mpi - spack concretize - spack install --dirty -v --fail-fast - - - name: build-oasis - if: steps.cache-env.outputs.cache-hit != 'true' - run: | - . /opt/intel/oneapi/setvars.sh - source spack/share/spack/setup-env.sh - spack env activate ww3-intel - export WWATCH3_DIR=${GITHUB_WORKSPACE}/ww3/model - export OASIS_INPUT_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/oasis3-mct - export OASIS_WORK_PATH=${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct - cd ww3/regtests/ww3_tp2.14/input/oasis3-mct/util/make_dir - cmake . - make - cp -r ${GITHUB_WORKSPACE}/ww3/regtests/ww3_tp2.14/input/work_oasis3-mct ${GITHUB_WORKSPACE} - - build: - needs: setup - strategy: - matrix: - switch: [Ifremer1, NCEP_st2, NCEP_st4, ite_pdlib, NCEP_st4sbs, NCEP_glwu, OASACM, UKMO, MULTI_ESMF, NUOPC_MESH] - runs-on: ubuntu-20.04 - - steps: - - name: checkout-ww3 - uses: actions/checkout@v2 - with: - path: ww3 - - - name: cache-env - id: cache-env - uses: actions/cache@v2 - with: - path: | - spack - ~/.spack - work_oasis3-mct - /opt/intel - key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('ww3/model/ci/spack_intel.yaml') }} - - - name: build-ww3 - run: | - . /opt/intel/oneapi/setvars.sh - source spack/share/spack/setup-env.sh - spack env activate ww3-intel - cd ww3 - export CC=mpicc - export FC=mpif90 - export OASISDIR=${GITHUB_WORKSPACE}/work_oasis3-mct - mkdir build && cd build - if [[ ${{ matrix.switch }} == "MULTI_ESMF" ]]; then - cmake .. -DUFS_CAP=MULTI_ESMF -DSWITCH=multi_esmf - elif [[ ${{ matrix.switch }} == "NUOPC_MESH" ]]; then - cmake .. -DUFS_CAP=NUOPC_MESH -DSWITCH=meshcap - else - cmake .. -DSWITCH=${{ matrix.switch }} - fi - make -j2 VERBOSE=1