Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix SCM RTs; Add new CI test for full gnu stack #6

Merged
merged 40 commits into from
Jan 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
6eada21
New CI test for SCM build
Jan 13, 2023
be3306a
Update to CI file.
Jan 13, 2023
c7b5cb8
Update to CI file.
Jan 13, 2023
513d718
Update to CI file.
Jan 13, 2023
c836af3
Update to CI file.
Jan 13, 2023
00e310d
Update to CI file.
Jan 13, 2023
d6b8621
Update to CI file.
Jan 13, 2023
3a1e251
Update to CI file.
Jan 13, 2023
abfe949
Update to CI file.
Jan 13, 2023
c5f07c5
Update to CI file.
Jan 13, 2023
692cd9b
Update to CI file.
Jan 13, 2023
7a31743
Update to CI file.
Jan 13, 2023
3610aba
Update to CI file.
Jan 13, 2023
2a05c65
Update to CI file.
Jan 14, 2023
6cc39aa
Update CI.
dustinswales Jan 17, 2023
df235b9
Update CI.
dustinswales Jan 17, 2023
d510593
Update CI.
dustinswales Jan 17, 2023
3481241
Update CI.
dustinswales Jan 17, 2023
a985666
Update CI.
dustinswales Jan 17, 2023
8f17446
Update CI.
dustinswales Jan 17, 2023
42a3a41
Update CI.
dustinswales Jan 17, 2023
85bc67d
Update CI.
dustinswales Jan 17, 2023
5a7baef
Update CI.
dustinswales Jan 17, 2023
26546e2
Update CI.
dustinswales Jan 17, 2023
ae10986
Update CI.
dustinswales Jan 17, 2023
684a8a6
Update CI.
dustinswales Jan 17, 2023
46739e1
Update CI.
dustinswales Jan 17, 2023
3361f3f
Update CI.
dustinswales Jan 17, 2023
7f5546c
Update CI.
dustinswales Jan 17, 2023
a416eb5
Update CI.
dustinswales Jan 17, 2023
bff4c35
Update CI.
dustinswales Jan 17, 2023
36a1041
Update CI.
dustinswales Jan 17, 2023
afcc8b8
Update CI.
dustinswales Jan 17, 2023
93e13da
Update CI.
dustinswales Jan 17, 2023
1b47c74
Update CI.
dustinswales Jan 17, 2023
2655d9a
Update CI.
dustinswales Jan 17, 2023
89770e7
Update CI.
dustinswales Jan 17, 2023
5975faf
Update CI.
dustinswales Jan 17, 2023
b4be1fa
Update CI.
dustinswales Jan 17, 2023
c56b4da
Update CI.
dustinswales Jan 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 183 additions & 0 deletions .github/workflows/ci_build_scm_ubuntu_22.04.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
name: CI test to build the CCPP-SCM on ubuntu v22.04

on: [pull_request,workflow_dispatch]

jobs:
build_scm:

# The type of runner that the job will run on
runs-on: ubuntu-22.04
strategy:
matrix:
fortran-compiler: [gfortran-10, gfortran-11, gfortran-12]
build-type: [Release, Debug]
py-version: [3.7.13, 3.9.12]

# Environmental variables
env:
NFHOME: /home/runner/netcdf-fortran
NFVERSION: v4.5.3
bacio_ROOT: /home/runner/bacio
sp_ROOT: /home/runner/NCEPLIBS-sp
w3emc_ROOT: /home/runner/myw3emc
SCM_ROOT: /home/runner/work/ccpp-scm/ccpp-scm
intel_ROOT: /home/runner/intel
suites: SCM_GFS_v15p2,SCM_GFS_v16,SCM_GFS_v17_p8,SCM_HRRR,SCM_RRFS_v1beta,SCM_RAP,SCM_WoFS_v0,SCM_GFS_v15p2_ps,SCM_GFS_v16_ps,SCM_GFS_v17_p8_ps,SCM_HRRR_ps,SCM_RRFS_v1beta_ps,SCM_RAP_ps,SCM_WoFS_v0_ps

# Workflow steps
steps:
#######################################################################################
# Initial
#######################################################################################
- name: Checkout SCM code (into /home/runner/work/ccpp-scm/)
uses: actions/checkout@v3

- name: Initialize submodules
run: git submodule update --init --recursive

#######################################################################################
# Python setup
#######################################################################################
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{matrix.py-version}}

- name: Add conda to system path
run: |
echo $CONDA/bin >> $GITHUB_PATH

- name: Install python libraries
run: |
conda install --yes -c conda-forge f90nml
conda install --yes -c conda-forge netCDF4

- name: Update system packages
run: sudo apt-get update

#######################################################################################
# Install FORTRAN dependencies
#######################################################################################
- name: Environment for ifort compiler
if: contains(matrix.fortran-compiler, 'ifort')
run: |
echo "CC=icx" >> $GITHUB_ENV
echo "FC=ifort" >> $GITHUB_ENV
echo "NFVERSION=v4.4.4" >> $GITHUB_ENV

- name: Cache Intel compilers
id: cache-intel-compilers
if: contains(matrix.fortran-compiler, 'ifort')
uses: actions/cache@v2
with:
path: /home/runner/intel
key: intel-${{ runner.os }}-compilers-b

# https://software.intel.com/content/www/us/en/develop/articles/installing-intel-oneapi-toolkits-via-apt.html
# List of packages from Docker file at
# https://github.com/intel/oneapi-containers/blob/master/images/docker/hpckit-devel-ubuntu18.04/Dockerfile
- name: Install Intel compilers and libraries
if: contains(matrix.fortran-compiler, 'ifort') && steps.cache-intel-compilers.outputs.cache-hit != 'true'
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
sudo apt-get update
sudo apt-get install intel-hpckit-getting-started intel-oneapi-clck intel-oneapi-common-licensing intel-oneapi-common-vars
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-fortran intel-oneapi-itac

- name: Cache bacio library v2.4.1
id: cache-bacio-fortran
uses: actions/cache@v3
with:
path: /home/runner/bacio
key: cache-bacio-fortran-${{matrix.fortran-compiler}}-key

- name: Install bacio library v2.4.1
if: steps.cache-bacio-fortran.outputs.cache-hit != 'true'
run: |
git clone --branch v2.4.1 https://github.com/NOAA-EMC/NCEPLIBS-bacio.git bacio
cd bacio && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=${bacio_ROOT} ../
make -j2
make install
echo "bacio_DIR=/home/runner/bacio/lib/cmake/bacio" >> $GITHUB_ENV

- name: Cache SP-library v2.3.3
id: cache-sp-fortran
uses: actions/cache@v3
with:
path: /home/runner/NCEPLIBS-sp
key: cache-sp-fortran-${{matrix.fortran-compiler}}-key

- name: Install SP-library v2.3.3
if: steps.cache-sp-fortran.outputs.cache-hit != 'true'
run: |
git clone --branch v2.3.3 https://github.com/NOAA-EMC/NCEPLIBS-sp.git NCEPLIBS-sp
cd NCEPLIBS-sp && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=${sp_ROOT} ../
make -j2
make install
echo "sp_DIR=/home/runner/NCEPLIBS-sp/lib/cmake/sp" >> $GITHUB_ENV

- name: Cache w3emc library v2.9.2
id: cache-w3emc-fortran
uses: actions/cache@v3
with:
path: /home/runner/myw3emc
key: cache-w3emc-fortran-${{matrix.fortran-compiler}}-key

- name: Install w3emc library v2.9.2
if: steps.cache-w3emc-fortran.outputs.cache-hit != 'true'
run: |
git clone --branch v2.9.2 https://github.com/NOAA-EMC/NCEPLIBS-w3emc.git NCEPLIBS-w3emc
cd NCEPLIBS-w3emc && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=${w3emc_ROOT} ../
make -j2
make install
echo "w3emc_DIR=/home/runner/myw3emc/lib/cmake/w3emc" >> $GITHUB_ENV

- name: Install NetCDF C library
run: |
sudo apt-get update
sudo apt-get install libnetcdf-dev

- name: Cache NetCDF Fortran library
id: cache-netcdf-fortran
uses: actions/cache@v3
with:
path: /home/runner/netcdf-fortran
key: cache-netcdf-fortran-${{matrix.fortran-compiler}}-key

- name: Install NetCDF Fortran library
if: steps.cache-netcdf-fortran.outputs.cache-hit != 'true'
run: |
git clone --branch ${NFVERSION} https://github.com/Unidata/netcdf-fortran.git
cd netcdf-fortran
./configure
make -j
sudo make install
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NFHOME}/lib

#######################################################################################
# Build SCM.
#######################################################################################

- name: Configure build with CMake (Release)
if: contains(matrix.build-type, 'Release')
run: |
cd ${SCM_ROOT}/scm
mkdir bin && cd bin
cmake -DCCPP_SUITES=${suites} ../src

- name: Configure build with CMake (Debug)
if: contains(matrix.build-type, 'Debug')
run: |
cd ${SCM_ROOT}/scm
mkdir bin && cd bin
cmake -DCCPP_SUITES=${suites} -DCMAKE_BUILD_TYPE=Debug ../src

- name: Build SCM
run: |
cd ${SCM_ROOT}/scm/bin
make -j4
22 changes: 12 additions & 10 deletions .github/workflows/ci_run_scm_rts.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
name: CI test to build and run SCM regression tests

on: [pull_request,workflow_dispatch]
on: [pull_request, workflow_dispatch]

jobs:
run_scm_rts:

# The type of runner that the job will run on
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
matrix:
fortran-compiler: [gnu]
fortran-compiler: [gfortran-11]
build-type: [Release, Debug]
py-version: [3.9.12]

# Environmental variables
env:
NFHOME: /home/runner/netcdf-fortran
NFVERSION: v4.5.3
bacio_ROOT: /home/runner/bacio
sp_ROOT: /home/runner/NCEPLIBS-sp
w3emc_ROOT: /home/runner/myw3emc
Expand All @@ -38,10 +40,10 @@ jobs:
#######################################################################################
# Python setup
#######################################################################################
- name: Set up Python 3.8.5
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.8.5
python-version: ${{matrix.py-version}}

- name: Add conda to system path
run: |
Expand All @@ -61,8 +63,8 @@ jobs:
- name: Environment for gfortran compiler
if: contains(matrix.fortran-compiler, 'gnu')
run: |
echo "FC=gfortran-9" >> $GITHUB_ENV
echo "CC=gcc-9" >> $GITHUB_ENV
echo "FC=gfortran-11" >> $GITHUB_ENV
echo "CC=gcc-11" >> $GITHUB_ENV

- name: Environment for ifort compiler
if: contains(matrix.fortran-compiler, 'intel')
Expand Down Expand Up @@ -124,17 +126,17 @@ jobs:
- name: Install NetCDF C library
run: sudo apt-get install libnetcdf-dev

- name: Cache NetCDF Fortran library v4.4.4
- name: Cache NetCDF Fortran library
id: cache-netcdf-fortran
uses: actions/cache@v3
with:
path: /home/runner/netcdf-fortran
key: cache-netcdf-fortran-${{matrix.fortran-compiler}}-key

- name: Install NetCDF Fortran library v4.4.4
- name: Install NetCDF Fortran library
if: steps.cache-netcdf-fortran.outputs.cache-hit != 'true'
run: |
git clone --branch v4.4.4 https://github.com/Unidata/netcdf-fortran.git
git clone --branch ${NFVERSION} https://github.com/Unidata/netcdf-fortran.git
cd netcdf-fortran
./configure
make -j
Expand Down