Skip to content

Containerized CI + Cleanup testing #218

Merged
clark-evans merged 88 commits intoufs-community:gsl/developfrom
dustinswales:cleanup_testing
Mar 16, 2026
Merged

Containerized CI + Cleanup testing #218
clark-evans merged 88 commits intoufs-community:gsl/developfrom
dustinswales:cleanup_testing

Conversation

@dustinswales
Copy link
Copy Markdown
Collaborator

@dustinswales dustinswales commented Feb 24, 2026

This PR updates to CI based testing system in several ways.

  1. Testing cleanup
    1a) Remove dependency of testing repository (https://github.com/barlage/mpas_testcase) from CI workflow
    1b) Added namelist/stream case files to repository under testing_and_setup/ufs-community/cases. Previously these were in testing repository.
    1c) Remove dependency on THREDDS server from CI workflow.
    1d) Create GitHub Release assets with files from THREDDS server (e.g., physics tables and MPAS data files).
    1e) New script to fetch GitHub release assets (testing_and_setup/ufs-community/data/get_data.sh)

  2. Images for Containerized CI
    2a) Added Dockerfiles for minimal images (e.g., GNU, Intel oneapi, nvhpc)
    2b) Added Dockerfiles for dependencies (e.g., netCDF, and PnetCDF)
    2c) Added new CI script that creates images from Dockerfiles and pushes to Dockerhub.
    *We have MPAS images for GNU, Intel oneAPI, and NVHPCS, but only GNU has been implemented in this PR (Intel oneAPI will be part of a subsequent PR)

  3. Containerized CI
    3a) Updated CI script to run in container using images from Dockerhub (Created in 2c).
    3b) Modify workflows to use namelists/streams in testing_and_setup/ufs-community/cases.
    3c) Modify workflow scripts to fetch GitHub assets (Using 1e)

Comments

All existing CI tests pass*.
*NOTE. The MPAS-Dev tests are showing differences in the HEAD of gsl/develop, which we also see in this feature branch.

To download the release assets for running the regression tests offline;
./testing_and_setup/ufs-community/data/get_data.sh

The CI script to upload the images to Dockerhub wont work on a pull_request trigger, since it relies on Github secrets in the target repository. (This is default behavior for security concerns)
I updated this repo with the appropriate secrets, so once this PR is merged, the image building script will work.

Priority Reviewers

@dustinswales
Copy link
Copy Markdown
Collaborator Author

@AndersJensen-NOAA @joeolson42 Can you guys review this PR?
All tests are passing, so you can dive in as deep as you desire.

Copy link
Copy Markdown
Collaborator

@joeolson42 joeolson42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a very slim perusal more than a strict review. Getting this PR committed with bugs is probably not a set back relative to where we are today with the server issues.

Copy link
Copy Markdown
Collaborator

@clark-evans clark-evans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comment: while I like that each test has its own directory with its own namelist(s), stream_lists, and streams files, there is a lot of duplication between them. Would it be cleaner to place common files into a common directory -- or perhaps two common directories, one for MPAS-Dev and one for ufs-community tests -- from which each set of tests could pull as needed?

@dustinswales
Copy link
Copy Markdown
Collaborator Author

General comment: while I like that each test has its own directory with its own namelist(s), stream_lists, and streams files, there is a lot of duplication between them. Would it be cleaner to place common files into a common directory -- or perhaps two common directories, one for MPAS-Dev and one for ufs-community tests -- from which each set of tests could pull as needed?

I like this idea, but I don't have time to address it anytime soon.
Could we move forward as-is and open an issue to distill the case config files?
Or if someone else wants to do it as part of this PR, I'd gladly except it. :)
It may make sense for a scientist/developer to go through and confirm and document all of the configurations

@clark-evans
Copy link
Copy Markdown
Collaborator

General comment: while I like that each test has its own directory with its own namelist(s), stream_lists, and streams files, there is a lot of duplication between them. Would it be cleaner to place common files into a common directory -- or perhaps two common directories, one for MPAS-Dev and one for ufs-community tests -- from which each set of tests could pull as needed?

I like this idea, but I don't have time to address it anytime soon. Could we move forward as-is and open an issue to distill the case config files? Or if someone else wants to do it as part of this PR, I'd gladly except it. :) It may make sense for a scientist/developer to go through and confirm and document all of the configurations

That's fine with me. Some notes for you, me, or whoever else might do this later:

  • The mpasdev and ufscommunity-non-hrrrv5 tests have common stream_list and streams files with each other.
  • The ufscommunity-hrrrv5 tests have common stream_list and streams files with each other.
  • The ufscommunity-hrrrv5 tests have common namelists with each other except for the GFS winter test, which for some reason lacks config_gvf_update = false. Possibly an oversight much earlier in the process?

@clark-evans clark-evans linked an issue Mar 13, 2026 that may be closed by this pull request
@dustinswales
Copy link
Copy Markdown
Collaborator Author

@clark-evans @ligiabernardet I wasn't able to get the image to push to ghcr/ufs-community. I'm sure it's something permission related, but I don't have the time to chase it down. Is it okay if we use my Dockerhub account and I open an issue to revisit this later?
I want to highlight that the only way these images would change is if someone changes the Dockerfiles in this repo and pushed it to gsl/develop (i.e. bypassing our PR processes). So it is "self contained" and safe.

@clark-evans
Copy link
Copy Markdown
Collaborator

@clark-evans @ligiabernardet I wasn't able to get the image to push to ghcr/ufs-community. I'm sure it's something permission related, but I don't have the time to chase it down. Is it okay if we use my Dockerhub account and I open an issue to revisit this later? I want to highlight that the only way these images would change is if someone changes the Dockerfiles in this repo and pushed it to gsl/develop (i.e. bypassing our PR processes). So it is "self contained" and safe.

That's fine with me. I'm not worried about safety in this context - just wanting to make sure all is well if something were to happen to you! Want me to open the issue, or are you OK with doing so?

@ligiabernardet
Copy link
Copy Markdown
Collaborator

It sounds like a good approach for now. If we need to revisit anything regarding permissions in the repo, please reach out.

Copy link
Copy Markdown
Collaborator

@clark-evans clark-evans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK with me once my versioning comment is addressed.

@clark-evans clark-evans merged commit dd7e157 into ufs-community:gsl/develop Mar 16, 2026
18 checks passed
jordanschnell pushed a commit to cheMPAS-Fire/MPAS-Model that referenced this pull request Apr 2, 2026
* Update CI
* Update README.md

---------

Co-authored-by: dustinswales <dswales@ucar.edu>
jordanschnell added a commit to cheMPAS-Fire/MPAS-Model that referenced this pull request Apr 2, 2026
* v8.3.1-2.13: Update MPAS HRRR CI test for tempo v3 lookup tables (ufs-community#213)

* Update MPAS HRRR CI test for tempo v3 lookup tables
* Update version in README

* v8.3.1-2.14: TEMPO code cleanup and refactor for v3.0.0 and MPAS release (ufs-community#192)

* removed unused configuration variable
- added graupel volume to init_atmosphere registry
- formatted code
* cleaned up core_atmosphere registry for tempo
* cleaned up mpas tempo driver call and removed tempo table build from mpas
* v3.0.0 updates consistent with tempo refactor
* v3.0.0 tempo refactor with ml prediction for bl clouds
* update point to tempo v3 and clean up code to better match NCAR implementation
* Update CMakeList for tempo v3
* add compile option for tempo
* More updates to github runners for tempo v3
* change workflow to pull tempo v2 and v3 tables
* adds flag to turn on/off ability to calculate reflectivity from melting snow/graupel
* update pointer to tempo v3.0.2
* update to version 3.0.3 with more ccpp changes
* Update version number in README

---------

Co-authored-by: Clark Evans <clark.evans@noaa.gov>

* update to joes mynn

* Updating version number

* v8.3.1-2.16: Adding MYNN-SFC submodule to MPAS (ufs-community#210)

* submodularizing the MYNN surface layer scheme
* bug fix in physics/Makefile
* modified sfclayer and seaice driver for mynnsfc submodule
* removing compilation of (my) old MYNN sfclayer scheme
* added note in mpas_atmphys_vars.F that qcg is no longer needed in mynnsfc submodule
* added config options for MYNN sfc layer submodule
* bug fix for bringing in new flags for MYNN sfclayer submodule
* Final bug fixes for MPAS compilation
* Updating pointer to MYNN-SFC with a new debug Makefile for MPAS
* bug fix for adding necessary input into the MYNN-SFC submodule
* addressing cmake errors
* Final update to MYNN-SFC pointer, which includes RUC-tuned option config_mynn_sfcflux_land =1
* changing default config_mynn_sfcflux_land from 0 to 1
* a few bug fixes in MYNN-SFC and corresponding driver changes
* update pointer to MYNN-SFC, only formatting/cleanup
* Update version number
* fix typo
---------

Co-authored-by: Clark Evans <clark.evans@noaa.gov>

* v8.3.1-2.17: Restructure GFL submodule for MPAS, WRF, and CCPP (ufs-community#211)

* "Resture GFL submodule for MPAS, WRF, and CCPP"
* "update GFL for CMake"
* "turn off shallow convection for both bl_mynn and bl_mynnedmf"
* Update version number

* v8.3.1-2.18: hotfix to the build failure using `make -j8` with spack-stack  (ufs-community#221)

* core_mynnsfc and core_physics_noahmp need to depend on core_physics_init
* bump version to 8.3.1-2.18

* Update PR template

Added mandatory questions section to PR template.

* Containerized CI + Cleanup testing  (ufs-community#218)

* Update CI
* Update README.md

---------

Co-authored-by: dustinswales <dswales@ucar.edu>

* v8.3.1-2.20: Add mmm physics as submobule. (ufs-community#233)

* Initial commit
* CI trigger test
* Address reviewer comment
* Update README.md

* v8.3.1-2.21: Add two new namelist options to control the hydrometeors to be included in the LBC files. (ufs-community#234)

* Add two new namelist options and packages to control the hydrometeors to be included in the LBC files. This is because the resource model has different hydrometeors in their products. The two options added are for the LBC from GFS or GEFS.
* Updating tabs to spaces for selected registry elements
* In core_init_atmosphere/Registry.xml, change bdy option name from 'tempoall' to 'rrfs' for consistency with 'gfs'
* Update version number

---------

Co-authored-by: Clark Evans <clark.evans@noaa.gov>

* v8.3.1-2.22: restore extra spaces in mpas_stream_manager.F to match NCAR's version (ufs-community#238)

* restore extra spaces in mpas_stream_manager.F to match NCAR's version
* Update version number

---------

Co-authored-by: Clark Evans <clark.evans@noaa.gov>

* final updates to match

---------

Co-authored-by: AndersJensen-NOAA <132939212+AndersJensen-NOAA@users.noreply.github.com>
Co-authored-by: Clark Evans <clark.evans@noaa.gov>
Co-authored-by: Joseph Olson <joeolson42@users.noreply.github.com>
Co-authored-by: haiqinli <38666296+haiqinli@users.noreply.github.com>
Co-authored-by: Guoqing Ge <guoqing.ge@noaa.gov>
Co-authored-by: Dustin Swales <dustin.swales@noaa.gov>
Co-authored-by: dustinswales <dswales@ucar.edu>
Co-authored-by: Ming Hu <Ming.Hu@noaa.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MP tables as release asset.

5 participants