Skip to content

Containerize unit testing CI jobs in MPAS dynamical core#489

Open
kuanchihwang wants to merge 5 commits intoESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-container-ci
Open

Containerize unit testing CI jobs in MPAS dynamical core#489
kuanchihwang wants to merge 5 commits intoESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-container-ci

Conversation

@kuanchihwang
Copy link
Copy Markdown
Collaborator

@kuanchihwang kuanchihwang commented Apr 13, 2026

Tag name (required for release branches)

None

Originator(s)

kuanchihwang

Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)

This PR containerizes the unit testing CI jobs in MPAS dynamical core with an expanded compiler matrix (GNU 11-15, Intel oneAPI 2024, and 2025). The pFUnit bootstrap overhead has been eliminated.

In addition, this PR migrates lightweight CI jobs to the ubuntu-slim runner and updates GitHub actions to latest versions for Node.js 24 compatibility.

Describe any changes made to the build system

None

Describe any changes made to the namelist

None

List any changes to the defaults for the input datasets (e.g., boundary datasets)

None

List all files eliminated and why

None

List all files added and what they do

None

List all existing files that have been modified, and describe the changes

M       .github/workflows/mpas_dynamical_core_ci.yml
  * Migrate lightweight CI jobs to `ubuntu-slim`
  * Update GitHub actions to latest versions
  * Remove unnecessary quotes
  * Containerize unit testing CI jobs in MPAS dynamical core
M       src/dynamics/mpas/tests/unit/CMakeLists.txt
M       src/dynamics/mpas/tests/unit/test_dyn_mpas_procedures.pf
M       src/dynamics/mpas/tests/unit/test_dyn_procedures.pf
  * Work around Intel compiler issues

Regression tests

  • derecho/aux_sima_gnu
SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: FAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam RUN time=15

Known failing test.

  • derecho/aux_sima_intel
SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP

Known failing test.

  • derecho/aux_sima_nvhpc

Pass.

@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS April 13, 2026 16:24 — with GitHub Actions Inactive
@kuanchihwang kuanchihwang force-pushed the staging/mpas-dycore-container-ci branch from aef5960 to 6b2182e Compare April 15, 2026 16:27
@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS April 15, 2026 16:27 — with GitHub Actions Inactive
* When `-warn all` is specified, the unit tests fail to compile with errors like:

  error #7977: The type of the function reference does not match the type of the function definition.

  The errors are found to occur in pFUnit-generated code, which is outside of our control.
  Work around it with `-warn all,nointerfaces`.

* Placing `use funit` in the smallest scoping unit causes excessive compile time for Intel compilers.
  Compiling the unit tests can take 20-30 minutes, which is absolutely not normal.
  Work around it by moving `use funit` to the module level as an exception to the coding standards.
Some CI jobs are very light on computing resources. Migrate those
to the newly available `ubuntu-slim` runner (1 vCPU).

As a result, queue time should be improved.
Due to the deprecation of Node.js 20 actions, update GitHub actions to the latest versions
that use Node.js 24.

The deadline is September 16th, 2026.
@kuanchihwang kuanchihwang force-pushed the staging/mpas-dycore-container-ci branch from 6b2182e to 54ef1f5 Compare April 24, 2026 23:34
@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS April 24, 2026 23:35 — with GitHub Actions Inactive
@kuanchihwang kuanchihwang marked this pull request as ready for review April 24, 2026 23:52
@kuanchihwang kuanchihwang requested a review from nusbaume April 24, 2026 23:52
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.

1 participant