Skip to content

CI: correctness on PRs, performance daily - #33

Merged
MHohlios merged 5 commits into
mainfrom
wiffletree/ci-correctness-on-prs-performance-daily
Nov 3, 2026
Merged

MHohlios merged 5 commits into
mainfrom
wiffletree/ci-correctness-on-prs-performance-daily

Conversation

@MHohlios

@MHohlios MHohlios commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Summary

PRs now run correctness checks only. The replay benchmark, its comparison and every test whose result depends on machine speed move to a daily run on main. Linear: VYT-259.

What runs where

  • On a PR or push (ci.yml): fmt and clippy, the build, cargo test --workspace --no-fail-fast, the macOS --synthetic --ax-check, and the iOS core build. The job keeps its name "Build, test and bench ()" so a future required check still matches. "Benchmark against the base branch" is gone.
  • Daily at 06:17 UTC and on demand (daily.yml): the replay benchmark on macOS, Windows and Ubuntu; mudling-bench compare against the commit the previous daily run measured, or the latest v* tag; and the timing tests, best of three, retrying only the tests that failed.
  • Release (release.yml): unchanged; it still runs ci.yml first.

Timing tests

Ten tests are marked #[ignore = "timing: runs daily"] and named timing_*. A test that also checked behaviour was split, so the behaviour half still runs on every PR. The plugin cost check is skipped in behaviour tests through own_tests_except_cost, fetch_link_except_cost and, for the CLI tests, MUDLING_SKIP_COST_CHECK. The app's own link install still judges cost.

Run them locally with cargo test --workspace -- --ignored timing_ on a quiet machine. docs/ci.md explains both runs.

GitHub emails a scheduled run's failure only to whoever last changed its cron line; others see it on the Actions tab.

Follow-ups

  • Elapsed-time tests with generous bounds still run on PRs; mark them timing_ if one flakes (crates/mudling-core/src/plugin/matcher.rs:316).
  • Hook-overrun and hang-guard tests, same as above (crates/mudling-core/tests/luau_hooks.rs:268).
  • A slowdown fails one daily run and then becomes the baseline; also compare against the last release tag (.github/workflows/daily.yml:5).
  • MUDLING_SKIP_COST_CHECK ships in the released CLI; move it to a test-only path (crates/mudling-cli/src/check.rs:24).

Reviewed with Wiffletree: 1 full review and 1 re-check, 3 rounds (Tests, Claude, Style)

mhohlios added 5 commits November 3, 2026 09:22
…viour out

Each carries #[ignore = "timing: runs daily"] and a name starting timing_.
Where a test also checked behaviour, the behaviour stays its own test. Plugin
checks gain own_tests_except_cost, so a plugin's transcript and hooks are
tested without judging its cost a line.
ci.yml drops the replay benchmark and the comparison with the base, and runs
cargo test with --no-fail-fast. daily.yml runs the benchmark, the comparison
with the last measured commit, and the timing tests, on main. docs/ci.md says
which is which.
The macOS runners' bash is 3.2, which has no mapfile, so a failed first attempt
ended the daily timing job instead of retrying. The build job's check name goes
back to what a ruleset may require.
mudling plugin test skips the cost when MUDLING_SKIP_COST_CHECK is set, and a
link fetch has a test-only way to skip it, so pull request tests no longer fail
on a slow runner. Timing tests keep judging cost. Avatar's transcript test now
lives in the CLI tests, so the avatar crate's copy goes.
…--ignored

GitHub notifies only the user who created the workflow or last changed its cron
line; everyone else sees a failure on the Actions tab. An unfiltered
cargo test -- --ignored rewrites a committed fixture and reaches the GPU and the
live registry. The Aardwolf test's comment now says it skips the cost.
@MHohlios
MHohlios force-pushed the wiffletree/ci-correctness-on-prs-performance-daily branch from f36e92a to 5792fa1 Compare November 3, 2026 14:24
@MHohlios
MHohlios merged commit cf707e6 into main Nov 3, 2026
5 checks passed
@MHohlios
MHohlios deleted the wiffletree/ci-correctness-on-prs-performance-daily branch November 3, 2026 15:19
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