Skip to content

ci: support multiple ECT cases (one table, ect-case input) - #88

Draft
cenamiller wants to merge 1 commit into
masterfrom
ci-ect-cases-lean
Draft

cenamiller wants to merge 1 commit into
masterfrom
ci-ect-cases-lean

Conversation

@cenamiller

Copy link
Copy Markdown
Collaborator

Draft: adds support for more than one ECT case, built up one case at a time.

What this does

ECT settings were hard-wired to a single case (120km, mesoscale_reference). This PR moves the per-case settings into one table, .github/ect-cases.yml, and adds an ect-case input to ect-test.yml and ect-ensemble-gen.yml. An empty input uses the table's default, so existing runs behave as before. An unknown name fails with the list of valid cases.

  • .github/ect-cases.yml: the table (archive, summary/restart asset names, durations, perturbation, excluded variables)
  • .github/actions/resolve-ect-case + .github/scripts/resolve-ect-case.py: resolve a case once in a workflow's config job and pass the values on as explicit inputs
  • run-perturb-mpas and validate-ect take their per-case values as inputs; results gain an ect-case column
  • The ECT_* per-case keys leave ci-config.env (PyCECT tag/commit stay)
  • The restart cache key now ends in the case name, so the first run after merging rebuilds the spin-up restart once

What this does not do

No new automatic runs. Existing push and pull_request ECT runs are unchanged and use the default case. Other cases are run by dispatch (ect-case input). Automatic targeting and a dropdown of cases are intentionally left for follow-ups.

Cases (added to this PR as separate commits)

Each case needs its reference ensemble (summary + spin-up restart in the ECT release, built with ECT Ensemble Generation), and a passing ECT Test run.

Case Status
mesoscale_reference (default, unchanged behaviour) in this PR
sf_noahmp planned
convection_permitting (+ convection-off variant) planned
limited-area (CONUS) cases planned

Test plan

  • ECT Ensemble Generation dispatched on this branch (default case)
  • ECT Test dispatched on this branch (default case)
  • Existing per-compiler ECT runs on this PR pass

🤖 Generated with Claude Code

…le-gen)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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