Skip to content

CI: pushing existing workflows down to 'develop' branch - #73

Merged
cenamiller merged 1 commit into
developfrom
ci-add-workflows-to-dev
Jul 24, 2026
Merged

CI: pushing existing workflows down to 'develop' branch#73
cenamiller merged 1 commit into
developfrom
ci-add-workflows-to-dev

Conversation

@cenamiller

Copy link
Copy Markdown
Collaborator

The development process on the NCAR/MPAS-Model-CI branch looked different than on the main MPAS-Dev/MPAS-Model repository, because of the need for the CI files to exist on the default 'master' branch. This means that instead of changes being pushed from develop -> master, in this case I need to push the changes on 'master' -> 'develop'. If the files exist on 'develop', I can test the new changes on the MPAS-Dev/MPAS-Model 'develop' branch when I sync my fork.

Copilot AI review requested due to automatic review settings July 23, 2026 19:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a full CI/testing stack (workflows + reusable composite actions/scripts) intended to be usable from the develop branch, and adds an initial pFUnit-based Fortran unit-test target for MPAS spline/interpolation routines.

Changes:

  • Add pFUnit unit-test build system under tests/ and an initial spline interpolation test suite.
  • Add GitHub Actions workflows for unit tests, ECT validation, coverage, subset compiler/MPI tests, BFB comparisons, and GPU profiling.
  • Add reusable composite actions and helper scripts to build MPAS, download test data, run MPAS/ECT ensembles, validate with PyCECT, and support Nsight Systems profiling.

Reviewed changes

Copilot reviewed 44 out of 44 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tests/unit/test_spline_interpolation.pf Adds pFUnit unit tests for linear and cubic-spline interpolation/integration.
tests/unit/CMakeLists.txt Defines the pFUnit CTest target for the spline interpolation tests.
tests/CMakeLists.txt Adds a standalone CMake project to build a small MPAS “testable procedures” library and enable unit tests.
.github/workflows/unit-tests.yml New CI workflow to build and run pFUnit unit tests on multiple GCC versions.
.github/workflows/test-nvhpc-openmpi.yml Dispatch-only caller for NVHPC+OpenMPI subset ECT validation.
.github/workflows/test-nvhpc-mpich.yml Caller for NVHPC+MPICH subset ECT validation.
.github/workflows/test-intel-openmpi.yml Dispatch-only caller for OneAPI+OpenMPI subset ECT validation.
.github/workflows/test-intel-mpich.yml Caller for OneAPI+MPICH subset ECT validation.
.github/workflows/test-gpu-openmpi.yml Dispatch-only caller for GPU ECT validation with OpenMPI.
.github/workflows/test-gpu-mpich.yml Dispatch-only caller for GPU ECT validation with MPICH.
.github/workflows/test-gcc-openmpi.yml Dispatch-only caller for GCC+OpenMPI subset ECT validation.
.github/workflows/test-gcc-mpich.yml Caller for GCC+MPICH subset ECT validation.
.github/workflows/test-cross-repo.yml Adds a dispatch workflow to run CI against an external MPAS repo/ref.
.github/workflows/profile-gpu-nsight.yml Adds a dispatch workflow to profile MPAS runs on GPU with Nsight Systems.
.github/workflows/ect-test.yml Adds an ECT workflow that builds MPAS-A and validates 3-member ensembles with PyCECT.
.github/workflows/ect-ensemble-gen.yml Adds a dispatch workflow to generate a full ECT reference ensemble/summary and publish to releases.
.github/workflows/coverage.yml Adds a workflow to build with GCC coverage flags and upload lcov output to Codecov.
.github/workflows/compile-nvhpc-cuda-mpich.yml Adds a compile-only workflow for NVHPC+CUDA toolchain validation on hosted runners.
.github/workflows/bfb-nvhpc-cpu-vs-gpu.yml Adds a dispatch BFB workflow comparing NVHPC CPU vs GPU OpenACC outputs.
.github/workflows/bfb-io.yml Adds a BFB caller comparing SMIOL vs PIO outputs.
.github/workflows/bfb-io-gpu.yml Adds a dispatch BFB caller for GPU runs comparing SMIOL vs PIO outputs.
.github/workflows/bfb-decomp.yml Adds a BFB caller comparing different MPI decompositions (rank counts).
.github/workflows/bfb-decomp-gpu.yml Adds a dispatch GPU BFB caller comparing different rank counts.
.github/workflows/_test-gpu.yml Reusable workflow for GPU (CUDA/OpenACC) ECT validation on self-hosted runners.
.github/workflows/_test-compiler.yml Reusable workflow for CPU subset ECT validation across compiler/MPI combinations.
.github/workflows/_test-bfb.yml Reusable workflow for BFB comparisons across multiple variants (CPU/GPU, PIO/SMIOL, ranks).
.github/scripts/run-nsys-profile.sh Adds a helper script to run MPAS under nsys profile.
.github/scripts/resolve-nsys.sh Adds logic to locate a working nsys binary (avoid NVHPC stubs).
.github/scripts/install-nsight-systems-cli.sh Adds an installer for Nsight Systems CLI via NVIDIA devtools RPM repo (RHEL-family images).
.github/scripts/compare-bfb-nc.py Adds a NetCDF “data-only” comparator for BFB checks when container metadata differs.
.github/data/ect_excluded_vars.txt Adds an exclude list to trim large/unneeded variables from ECT artifacts.
.github/ci-config.env Adds centralized CI configuration (containers, make targets, testdata tags, ECT/BFB parameters).
.github/actions/validate-ect/action.yml Composite action to download ECT summary + run PyCECT + write an enriched result artifact.
.github/actions/setup-nsight-systems/action.yml Composite action to ensure a working nsys is available and cache RPM downloads.
.github/actions/run-perturb-mpas/trim_history.py Adds a trimmer to reduce ECT history files (single timeslice, exclude vars, deflate).
.github/actions/run-perturb-mpas/perturb_theta.py Adds a script to perturb theta in IC/restart files for ensemble diversity.
.github/actions/run-perturb-mpas/action.yml Composite action to run perturbed ensemble members and collect/trim history output.
.github/actions/run-mpas/action.yml Composite action to download a test case and run MPAS with configurable overrides/timeouts.
.github/actions/resolve-container/action.yml Composite action to assemble container image names from ci-config.env.
.github/actions/print-mpas-logs/action.yml Composite action to print per-rank MPAS log files into the workflow log.
.github/actions/mpas-version/action.yml Composite action to extract MPAS version from Registry.xml (used for ECT release tags).
.github/actions/ect-summary/action.yml Composite action to aggregate multiple ECT result artifacts into a step-summary table.
.github/actions/download-testdata/action.yml Composite action to download/cache/extract test-case tarballs from GitHub releases.
.github/actions/build-mpas/action.yml Composite action to build MPAS-A using ci-config.env make-target mappings and workarounds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +19 to +20
push:
branches: [master]
Comment on lines +18 to +19
push:
branches: [master]
Comment on lines +14 to +15
push:
branches: [master]
Comment on lines +8 to +11
push:
branches: [master, 'hackathon-*']
pull_request:
branches: [master, 'hackathon-*']
Comment on lines +11 to +14
push:
branches: [master, 'hackathon-*']
pull_request:
branches: [master, 'hackathon-*']
Comment on lines +8 to +11
push:
branches: [master, 'hackathon-*']
pull_request:
branches: [master, 'hackathon-*']
Comment on lines +8 to +11
push:
branches: [master, 'hackathon-*']
pull_request:
branches: [master, 'hackathon-*']
@cenamiller
cenamiller merged commit 0190711 into develop Jul 24, 2026
4 checks passed
@cenamiller
cenamiller deleted the ci-add-workflows-to-dev branch July 24, 2026 17:11
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.

2 participants