From 6cca61eafe9ff4b006821d98a2c5baeb9e0704d4 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 6 Feb 2025 08:42:21 -0500 Subject: [PATCH] v3: Update CI with latest GFE --- .circleci/config.yml | 180 +++++++++++++++++---------------- .github/workflows/workflow.yml | 4 +- CMakeLists.txt | 26 ++--- 3 files changed, 107 insertions(+), 103 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c966066e3c23..facb077d4e03 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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: @@ -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: diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 865a7d3d7136..c75dd5cebdcc 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -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 @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f0db79e5133..870ce525ed16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,20 +66,20 @@ 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})") @@ -87,10 +87,10 @@ message (STATUS "Found gFTL-shared: ${GFTL_DIR} (found version ${GFTL_SHARED_VER 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") @@ -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")