Two independent ways this job's only real assertion could vanish silently.
1. `cargo test <filter>` is a SUBSTRING match with NO floor. Rename the test --
dropping just `the_` from `wipes_the_entire_namespace_destructively` is
enough -- and the filter matches zero tests:
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
exit status 0
The job goes green, having stood up a dedicated valkey/valkey:8 service
container to run nothing at all, and because the test is `#[ignore]`d no other
job covers it either. The step now asserts `test result: ok. 1 passed`, so a
rename fails loudly instead of quietly deleting the coverage.
Deliberately NOT `--exact`: the `1 passed` floor is the load-bearing half and
cannot break on a guess about the module path.
2. `plugin_path()` in the plugin's e2e tests was the only one of the ten sibling
plugin repos without the `is_none() && CI -> panic!()` guard -- while
`valkey_url()` seventeen lines below it in the same file has it. Demonstrated
rather than assumed, with the cdylib absent:
running 3 tests
test admin_api_installs_the_valkey_plugin_and_writes_land_in_real_valkey ... ok
test load_and_exercise_valkey_plugin_bad_config_fails_over_abi ... ok
test load_and_exercise_valkey_plugin_persists_to_real_valkey_across_reopen ... ok
test result: ok. 3 passed; ... finished in 0.00s
Three tests "passed" in 0.00s without their subject existing. It now checks
both the uplifted target dir and target/deps (a bare `cargo test` uplifts to
neither for this crate), and refuses to skip under CI.
rust-cache was caching nothing here
Swatinem/rust-cache@v2was used with noworkspaces:input. The action looks for one Cargo workspace at$GITHUB_WORKSPACE, and nothing is checked out there: everyactions/checkoutin these jobs usespath:. The action logged "could not find Cargo.toml" and CARRIED ON WITHOUT FAILING, so the job rebuilt everything from scratch on every run while the log said the cache step succeeded. That is the worst shape a cache misconfiguration can take: it costs full build time on every run and reports success.Every Cargo workspace the job actually builds is now named. Where the job also builds the sibling busbar checkout, that is listed too, and it matters more than the plugin's own:
busbar-plugin-packplus a full release build of busbar is by far the larger of the two.Deliberately left alone
Checked every workflow in this repo that uses
Swatinem/rust-cache, not just the ones changed. A job whose Cargo workspace genuinely is at the checkout root needs nothing and got nothing, rather than aworkspaces: .that would be pure noise.headroom-hook/.github/workflows/docker.ymlis one such case (its checkout has nopath:), andheadroom-hook/.github/workflows/docker-bundle.ymlalready carried a correctworkspaces: busbarAI.Part of a fleet sweep
Same fix applied across the first-party plugin repos, and to the reusable
plugin-ci.ymlin core (GetBusbar/busbar#58), which had the same defect and reaches every plugin repo at once.