From 06928ea864794785d9a5461cc23a54822e3d5c5b Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:31:13 -0600 Subject: [PATCH 1/7] Update to Ub 24 --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8e21ecf..83e070a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,10 +8,10 @@ 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"] + gcc_major_version: ["13"] esmf_version: ["8.3.1", "8.4.2", "8.5.0", "8.6.1"] esmf_comm: ["mpiuni", "mpi"] @@ -78,7 +78,7 @@ jobs: release: name: Release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: build if: startsWith(github.ref, 'refs/tags/v') From 3141b4dccf9ed2951b9bb68f8a722cd8033e41fc Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:33:07 -0600 Subject: [PATCH 2/7] Just on push to main branch --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 83e070a..7ada1b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,6 @@ on: push: + branches: [main] pull_request: workflow_dispatch: From 590604f6428e698fb6db9364123eddb655e34110 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:35:46 -0600 Subject: [PATCH 3/7] Include EMSF 8.7.0 (Oct 2024) and drop 8.3.1 (Sep 2022) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ada1b4..0fc205c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: gcc_major_version: ["13"] - esmf_version: ["8.3.1", "8.4.2", "8.5.0", "8.6.1"] + esmf_version: ["8.4.2", "8.5.0", "8.6.1", "8.7.0"] esmf_comm: ["mpiuni", "mpi"] steps: From 597dc6053a500bb47f5ad51423e3a519f6d54a8b Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:53:23 -0600 Subject: [PATCH 4/7] Update example, while keeping same ESMF version --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c9eda4d..a374ccc 100644 --- a/README.md +++ b/README.md @@ -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. @@ -12,7 +12,7 @@ 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 @@ -23,18 +23,18 @@ jobs: - 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 @@ -45,7 +45,7 @@ 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 @@ -56,18 +56,18 @@ jobs: - 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 From 74733131cd78064e09f01c62f7d81d5b85a62fd1 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:55:51 -0600 Subject: [PATCH 5/7] `apt update` before install --- .github/workflows/build.yml | 5 +++-- README.md | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0fc205c..7839126 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,8 +21,9 @@ jobs: 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: Build ESMF run: | diff --git a/README.md b/README.md index a374ccc..cea9911 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ jobs: 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: | @@ -51,8 +51,9 @@ jobs: 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: | From a80bd3fff0234761ebdcd37c5fec22c847e3510b Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 10:58:39 -0600 Subject: [PATCH 6/7] Set Workflow name --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7839126..61d7d6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,5 @@ +name: Build + on: push: branches: [main] From a264874a076d2aaa27f94f533bbe22f5d07215f8 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 17 Jan 2025 11:00:55 -0600 Subject: [PATCH 7/7] Only install MPI for the MPI-enabled cases --- .github/workflows/build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 61d7d6f..57bffe0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,10 +22,13 @@ jobs: - name: Check out uses: actions/checkout@v4 - - name: Install dependencies + - name: Install non-MPI dependencies run: sudo apt-get update && sudo apt-get install -y libnetcdf-dev libnetcdff-dev liblapack-dev libopenblas-dev - libopenmpi-dev openmpi-bin + + - if: matrix.esmf_comm == 'mpi' + name: Install OpenMPI + run: sudo apt-get install -y libopenmpi-dev openmpi-bin - name: Build ESMF run: |