Skip to content

ci(regression): speed up the PR gate by dropping the unused input fetch#742

Merged
lewisjared merged 2 commits into
mainfrom
ci/faster-regression-pr-gate
Jun 18, 2026
Merged

ci(regression): speed up the PR gate by dropping the unused input fetch#742
lewisjared merged 2 commits into
mainfrom
ci/faster-regression-pr-gate

Conversation

@lewisjared

@lewisjared lewisjared commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

The PR-tier regression baseline gate (regression-pr-gate.yaml) was taking tens of minutes per run (e.g. this run), almost entirely spent downloading data it never used.

For each case a pull request touches, the gate routes to replay, which rebuilds the committed CMEC bundle from the native output blobs plus the committed catalog.yaml/manifest.json. build_execution_result reads only its output directory — it never opens the input datasets.

Changes

  • Drop the input-data fetch from the gate. scripts/ci/regression-pr-gate.sh no longer runs fetch-sample-data or test-cases fetch.
  • Make the gate runnable locally. The script now emits GitHub Actions log groups / ::error:: / ::warning:: annotations only under Actions, prints plain output otherwise, and accepts an optional base ref (default origin/${GITHUB_BASE_REF:-main}). A new make regression-gate target is the convenient entry point, so a contributor can reproduce a PR's verdict before pushing.

Checklist

Please confirm that this pull request has done the following:

  • Tests added
  • Documentation added (where applicable)
  • Changelog item added to changelog/

The PR-tier regression gate replays only the cases a pull request touches,
and replay rebuilds the committed bundle from the native output blobs plus
the committed catalog/manifest -- `build_execution_result` never reads the
input datasets. The gate was nonetheless fetching the full CMIP sample data
and every provider's ESGF inputs before replaying, which dominated the job
runtime (tens of minutes) for no benefit.

Remove the `fetch-sample-data` and `test-cases fetch` block from the gate so
it only pays for the small native blobs of the cases it actually replays.

Also make the gate script runnable locally: it emits GitHub Actions log groups
and annotations only under Actions, prints plain output otherwise, and accepts
an optional base ref (defaulting to origin/${GITHUB_BASE_REF:-main}). A
`make regression-gate` target is the convenient entry point.

Update the regression-baselines reference and the testing-diagnostics how-to to
document the no-input-data behaviour and the local entry point.
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
core 92.56% <ø> (ø)
providers 91.80% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

lewisjared added a commit that referenced this pull request Jun 18, 2026
…to feat/regression-ilamb-baselines

* origin/ci/faster-regression-pr-gate:
  docs(changelog): add fragment for PR #742
  ci(regression): speed up the PR gate by dropping the unused input fetch
@lewisjared lewisjared merged commit 269e3fe into main Jun 18, 2026
23 checks passed
@lewisjared lewisjared deleted the ci/faster-regression-pr-gate branch June 18, 2026 11:41
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