Skip to content

Add PIO subset CI workflow - #8

Closed
cenamiller wants to merge 2 commits into
masterfrom
feature-ci-subset-pio
Closed

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

Conversation

@cenamiller

Copy link
Copy Markdown
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

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

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

Copilot AI Mar 25, 2026

Copy link

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

Copilot AI Mar 25, 2026

Copy link

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
@cenamiller cenamiller closed this Mar 27, 2026
@cenamiller
cenamiller deleted the feature-ci-subset-pio branch March 27, 2026 19:27
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