Skip to content

Add PIO subset CI workflow#8

Open
cenamiller wants to merge 2 commits intomasterfrom
feature-ci-subset-pio
Open

Add PIO subset CI workflow#8
cenamiller wants to merge 2 commits intomasterfrom
feature-ci-subset-pio

Conversation

@cenamiller
Copy link
Collaborator

Summary

  • Adds test-pio.yml -- PIO I/O library subset workflow
  • Tests PIO with all three compilers (gcc, nvhpc, oneapi) using openmpi, 1 MPI rank
  • Validates logs against reference output
  • Manual trigger (workflow_dispatch) only

Test plan

  • Trigger manually via Actions tab after merge
  • Verify all three compilers build and run with PIO

Tests PIO across all three compilers (gcc, nvhpc, oneapi) with openmpi
at 1 MPI rank. Validates against reference logs. Manual trigger only.

Made-with: Cursor
Copilot AI review requested due to automatic review settings March 25, 2026 04:25
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a manual, subset GitHub Actions workflow to quickly verify MPAS-A builds and runs with the PIO I/O library across the supported compiler containers, and validates run logs against a reference output.

Changes:

  • Introduces .github/workflows/test-pio.yml with a build/run/validate/cleanup job sequence.
  • Builds MPAS-A with PIO enabled for gcc/nvhpc/oneapi in OpenMPI containers and runs a 1-rank case.
  • Downloads and validates log artifacts against the 240km reference log, then cleans up executable artifacts.

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

Comment on lines +58 to +67
- name: Download executable
id: download
uses: actions/download-artifact@v4
continue-on-error: true
with:
name: exe-${{ matrix.compiler }}-openmpi-pio

- name: Run MPAS-A
if: steps.download.outcome == 'success'
uses: ./.github/actions/run-mpas
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

actions/download-artifact is marked continue-on-error: true and the subsequent run/upload steps are skipped on download failure, which can make this job (and potentially the workflow) succeed without actually running MPAS-A for a compiler (e.g., if the artifact name changes/mismatches). For this subset CI, consider failing fast when the executable download fails (remove continue-on-error, or add an explicit step that exit 1 when steps.download.outcome != 'success').

Copilot uses AI. Check for mistakes.
Comment on lines +103 to +113
- name: Validate 1-proc logs against reference
uses: ./.github/actions/validate-logs
with:
logs-path: logs
log-filter: 1proc
reference-log: .github/test-cases/240km/reference_log.atmosphere.0000.out
expected-configs: >-
logs-1proc-gcc-openmpi-nogpu-pio,
logs-1proc-nvhpc-openmpi-nogpu-pio,
logs-1proc-oneapi-openmpi-nogpu-pio

Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

The validate-logs composite action currently runs compare_logs.py with --allow-missing, which means missing entries in expected-configs are reported as NO_LOG but do not fail validation. Since this workflow’s purpose is to ensure all three compiler runs happened, add an explicit check that all expected log artifact directories exist (or adjust the validation invocation) so missing logs cause the workflow to fail.

Copilot uses AI. Check for mistakes.
- Add push and pull_request triggers so workflow runs on PRs
- Remove continue-on-error from artifact download
- Make allow-missing configurable in validate-logs action, set false here

Made-with: Cursor
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