Skip to content

Commit

Permalink
v3: Update CI with latest GFE
Browse files Browse the repository at this point in the history
  • Loading branch information
mathomp4 committed Feb 6, 2025
1 parent b809a0f commit 6cca61e
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 103 deletions.
180 changes: 92 additions & 88 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ parameters:

# Anchors to prevent forgetting to update a version
os_version: &os_version ubuntu24
baselibs_version: &baselibs_version v7.29.0
baselibs_version: &baselibs_version v7.30.0
bcs_version: &bcs_version v11.6.0
tag_build_arg_name: &tag_build_arg_name maplversion

orbs:
ci: geos-esm/circleci-tools@4
ci: geos-esm/circleci-tools@dev:76b980fe7271aa8935d2f10bbcb525c14f3cf2ea

workflows:
build-and-test-MAPL:
Expand Down Expand Up @@ -102,93 +102,97 @@ workflows:
- build-and-test-MAPL-on-<< matrix.compiler >>-using-Unix Makefiles
baselibs_version: *baselibs_version

build-and-run-GEOSgcm:
jobs:
# Build GEOSgcm
- ci/build:
name: build-GEOSgcm-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran, ifort, ifx]
baselibs_version: *baselibs_version
repo: GEOSgcm
checkout_fixture: true
fixture_branch: release/MAPL-v3
mepodevelop: true
checkout_mapl3_release_branch: true
checkout_mapl_branch: true
persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra, retained for one day
# MAPL3 will soon break GEOSgcm builds. So for now we turn off all the builds of GEOS fixtures

# Run GCM (1 hour, no ExtData)
- ci/run_gcm:
name: run-GCM-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran, ifort, ifx]
requires:
- build-GEOSgcm-on-<< matrix.compiler >>
repo: GEOSgcm
baselibs_version: *baselibs_version
bcs_version: *bcs_version

# Run Coupled GCM (1 hour, no ExtData)
- ci/run_gcm:
name: run-coupled-GCM-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran, ifort]
requires:
- build-GEOSgcm-on-<< matrix.compiler >>
repo: GEOSgcm
baselibs_version: *baselibs_version
bcs_version: *bcs_version
gcm_ocean_type: MOM6
change_layout: false

build-GEOSldas:
jobs:
# Build GEOSldas
- ci/build:
name: build-GEOSldas-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran, ifort]
baselibs_version: *baselibs_version
repo: GEOSldas
mepodevelop: false
checkout_fixture: true
fixture_branch: release/MAPL-v3
checkout_mapl3_release_branch: true
checkout_mapl_branch: true

build-GEOSadas:
jobs:
# Build GEOSadas (ifort only, needs a couple develop branches)
- ci/build:
name: build-GEOSadas-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [ifort]
resource_class: xlarge
baselibs_version: *baselibs_version
repo: GEOSadas
checkout_fixture: true
fixture_branch: release/MAPL-v3
checkout_mapl3_release_branch: true
checkout_mapl_branch: true
mepodevelop: false
rebuild_procs: 4
build_type: Release
###################################################################################################################
# build-and-run-GEOSgcm: #
# jobs: #
# # Build GEOSgcm #
# - ci/build: #
# name: build-GEOSgcm-on-<< matrix.compiler >> #
# context: #
# - docker-hub-creds #
# matrix: #
# parameters: #
# compiler: [gfortran, ifort, ifx] #
# baselibs_version: *baselibs_version #
# repo: GEOSgcm #
# checkout_fixture: true #
# fixture_branch: release/MAPL-v3 #
# mepodevelop: true #
# checkout_mapl3_release_branch: true #
# checkout_mapl_branch: true #
# persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra, retained for one day #
# #
# # Run GCM (1 hour, no ExtData) #
# - ci/run_gcm: #
# name: run-GCM-on-<< matrix.compiler >> #
# context: #
# - docker-hub-creds #
# matrix: #
# parameters: #
# compiler: [gfortran, ifort, ifx] #
# requires: #
# - build-GEOSgcm-on-<< matrix.compiler >> #
# repo: GEOSgcm #
# baselibs_version: *baselibs_version #
# bcs_version: *bcs_version #
# #
# # Run Coupled GCM (1 hour, no ExtData) #
# - ci/run_gcm: #
# name: run-coupled-GCM-on-<< matrix.compiler >> #
# context: #
# - docker-hub-creds #
# matrix: #
# parameters: #
# compiler: [gfortran, ifort] #
# requires: #
# - build-GEOSgcm-on-<< matrix.compiler >> #
# repo: GEOSgcm #
# baselibs_version: *baselibs_version #
# bcs_version: *bcs_version #
# gcm_ocean_type: MOM6 #
# change_layout: false #
# #
# build-GEOSldas: #
# jobs: #
# # Build GEOSldas #
# - ci/build: #
# name: build-GEOSldas-on-<< matrix.compiler >> #
# context: #
# - docker-hub-creds #
# matrix: #
# parameters: #
# compiler: [gfortran, ifort] #
# baselibs_version: *baselibs_version #
# repo: GEOSldas #
# mepodevelop: false #
# checkout_fixture: true #
# fixture_branch: release/MAPL-v3 #
# checkout_mapl3_release_branch: true #
# checkout_mapl_branch: true #
# #
# build-GEOSadas: #
# jobs: #
# # Build GEOSadas (ifort only, needs a couple develop branches) #
# - ci/build: #
# name: build-GEOSadas-on-<< matrix.compiler >> #
# context: #
# - docker-hub-creds #
# matrix: #
# parameters: #
# compiler: [ifort] #
# resource_class: xlarge #
# baselibs_version: *baselibs_version #
# repo: GEOSadas #
# checkout_fixture: true #
# fixture_branch: release/MAPL-v3 #
# checkout_mapl3_release_branch: true #
# checkout_mapl_branch: true #
# mepodevelop: false #
# rebuild_procs: 4 #
# build_type: Release #
###################################################################################################################

build-and-publish-docker:
when:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
name: Build and Test MAPL GNU
runs-on: ubuntu-latest
container:
image: gmao/ubuntu24-geos-env-mkl:v7.29.0-openmpi_5.0.5-gcc_14.2.0
image: gmao/ubuntu24-geos-env-mkl:v7.30.0-openmpi_5.0.5-gcc_14.2.0
# Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495
# It seems like we might not need secrets on GitHub Actions which is good for forked
# pull requests
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:
name: Build and Test MAPL Intel
runs-on: ubuntu-latest
container:
image: gmao/ubuntu24-geos-env:v7.29.0-intelmpi_2021.13-ifort_2021.13
image: gmao/ubuntu24-geos-env:v7.30.0-intelmpi_2021.13-ifort_2021.13
# Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495
# It seems like we might not need secrets on GitHub Actions which is good for forked
# pull requests
Expand Down
26 changes: 13 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,31 +66,31 @@ list (PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
# This would then populate the target already leading to find_package()
# errors.
if(NOT TARGET GFTL::gftl)
find_package(GFTL 1.10.0 REQUIRED)
find_package(GFTL 1.15.1 REQUIRED)
else()
if (GFTL_VERSION VERSION_LESS 1.10.0)
message(FATAL_ERROR "gFTL must be at least 1.10.0")
if (GFTL_VERSION VERSION_LESS 1.15.1)
message(FATAL_ERROR "gFTL must be at least 1.15.1")
endif ()
endif()
message (STATUS "Found gFTL: ${GFTL_DIR} (found version ${GFTL_VERSION})")

if(NOT TARGET GFTL_SHARED::gftl-shared)
# MAPL currently requires at least gFTL-shared 1.6.1
find_package(GFTL_SHARED 1.6.1 REQUIRED)
# MAPL currently requires at least gFTL-shared 1.10.0
find_package(GFTL_SHARED 1.10.0 REQUIRED)
else ()
if (GFTL_SHARED_VERSION VERSION_LESS 1.6.1)
message(FATAL_ERROR "gFTL-shared must be at least 1.6.1")
if (GFTL_SHARED_VERSION VERSION_LESS 1.10.0)
message(FATAL_ERROR "gFTL-shared must be at least 1.10.0")
endif ()
endif()
message (STATUS "Found gFTL-shared: ${GFTL_DIR} (found version ${GFTL_SHARED_VERSION})")

option(BUILD_WITH_FARGPARSE "Use fArgParse for command line processing" ON)
if(BUILD_WITH_FARGPARSE)
if(NOT TARGET FARGPARSE::fargparse)
find_package(FARGPARSE 1.5.0 REQUIRED)
find_package(FARGPARSE 1.9.0 REQUIRED)
else()
if (FARGPARSE_VERSION VERSION_LESS 1.5.0)
message(FATAL_ERROR "fArgParse must be at least 1.5.0")
if (FARGPARSE_VERSION VERSION_LESS 1.9.0)
message(FATAL_ERROR "fArgParse must be at least 1.9.0")
endif ()
endif()
message (STATUS "Building with fArgParse")
Expand All @@ -108,10 +108,10 @@ endif()
option(BUILD_WITH_PFLOGGER "Build MAPL with pFlogger library support" ON)
if (BUILD_WITH_PFLOGGER)
if(NOT TARGET PFLOGGER::pflogger)
find_package(PFLOGGER 1.9.5 REQUIRED)
find_package(PFLOGGER 1.15.0 REQUIRED)
else()
if (PFLOGGER_VERSION VERSION_LESS 1.9.5)
message(FATAL_ERROR "pFlogger must be at least 1.9.5")
if (PFLOGGER_VERSION VERSION_LESS 1.15.0)
message(FATAL_ERROR "pFlogger must be at least 1.15.0")
endif ()
endif()
message (STATUS "Building with pFlogger")
Expand Down

0 comments on commit 6cca61e

Please sign in to comment.