Skip to content

Commit

Permalink
Merge pull request #1 from noaa-oar-arl/update
Browse files Browse the repository at this point in the history
Update to `ubuntu-24.04`, GCC 13
  • Loading branch information
zmoon authored Jan 17, 2025
2 parents 08bd47b + a264874 commit f7d8c2b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 20 deletions.
21 changes: 14 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: Build

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

Expand All @@ -8,20 +11,24 @@ jobs:
name: Build ESMF ${{ matrix.esmf_version }}
with GCC ${{ matrix.gcc_major_version }}
(${{ matrix.esmf_comm }})
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
gcc_major_version: ["12"]
esmf_version: ["8.3.1", "8.4.2", "8.5.0", "8.6.1"]
gcc_major_version: ["13"]
esmf_version: ["8.4.2", "8.5.0", "8.6.1", "8.7.0"]
esmf_comm: ["mpiuni", "mpi"]

steps:
- name: Check out
uses: actions/checkout@v4

- name: Install dependencies
run: sudo apt-get install -y libnetcdf-dev libnetcdff-dev
liblapack-dev libopenblas-dev libopenmpi-dev openmpi-bin
- name: Install non-MPI dependencies
run: sudo apt-get update && sudo apt-get install -y
libnetcdf-dev libnetcdff-dev liblapack-dev libopenblas-dev

- if: matrix.esmf_comm == 'mpi'
name: Install OpenMPI
run: sudo apt-get install -y libopenmpi-dev openmpi-bin

- name: Build ESMF
run: |
Expand Down Expand Up @@ -78,7 +85,7 @@ jobs:

release:
name: Release
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: build
if: startsWith(github.ref, 'refs/tags/v')

Expand Down
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# gha-esmf

This repository builds ESMF using GitHub Actions Linux runners (`ubuntu-22.04`)
This repository builds ESMF using GitHub Actions Linux runners (`ubuntu-24.04`)
and publishes the resulting `ESMF_DIR`s.
Standard runner compilers and APT packages for ESMF's dependencies are used.
This allows a project that depends on ESMF to be quickly built in a GitHub Actions workflow.
Expand All @@ -12,29 +12,29 @@ No-MPI (`mpiuni`) example:
```yaml
jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check out
uses: actions/checkout@v4

- name: Install dependencies
run: sudo apt-get install -y libnetcdf-dev libnetcdff-dev
liblapack-dev libopenblas-dev
run: sudo apt-get update && sudo apt-get install -y
libnetcdf-dev libnetcdff-dev liblapack-dev libopenblas-dev

- name: Fetch pre-built ESMF
run: |
esmf=8.4.2-gcc-12-mpiuni
esmf=8.4.2-gcc-13-mpiuni
ESMF_DIR=$HOME/esmf/$esmf
mkdir -p $ESMF_DIR
cd $ESMF_DIR
wget https://github.com/noaa-oar-arl/gha-esmf/releases/download/v0.0.8/${esmf}.tar.gz
wget https://github.com/noaa-oar-arl/gha-esmf/releases/download/v0.0.9/${esmf}.tar.gz
tar xzvf ${esmf}.tar.gz
echo "ESMFMKFILE=${ESMF_DIR}/lib/libO/Linux.gfortran.64.mpiuni.default/esmf.mk" >> "$GITHUB_ENV"
- name: Configure
run: FC=gfortran-12 cmake -S . -B build
run: FC=gfortran-13 cmake -S . -B build

- name: Build
run: cmake --build build
Expand All @@ -45,29 +45,30 @@ MPI (Open MPI) example:
```yaml
jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check out
uses: actions/checkout@v4

- name: Install dependencies
run: sudo apt-get install -y libnetcdf-dev libnetcdff-dev
liblapack-dev libopenblas-dev libopenmpi-dev openmpi-bin
run: sudo apt-get update && sudo apt-get install -y
libnetcdf-dev libnetcdff-dev liblapack-dev libopenblas-dev
libopenmpi-dev openmpi-bin

- name: Fetch pre-built ESMF
run: |
esmf=8.4.2-gcc-12-mpi
esmf=8.4.2-gcc-13-mpi
ESMF_DIR=$HOME/esmf/$esmf
mkdir -p $ESMF_DIR
cd $ESMF_DIR
wget https://github.com/noaa-oar-arl/gha-esmf/releases/download/v0.0.8/${esmf}.tar.gz
wget https://github.com/noaa-oar-arl/gha-esmf/releases/download/v0.0.9/${esmf}.tar.gz
tar xzvf ${esmf}.tar.gz
echo "ESMFMKFILE=${ESMF_DIR}/lib/libO/Linux.gfortran.64.mpi.default/esmf.mk" >> "$GITHUB_ENV"
- name: Configure
run: FC=gfortran-12 cmake -S . -B build
run: FC=gfortran-13 cmake -S . -B build

- name: Build
run: cmake --build build
Expand Down

0 comments on commit f7d8c2b

Please sign in to comment.