ci: add GitHub Actions workflow (fmt + clippy + nextest)#4
Merged
Conversation
The repo previously had no remote CI, so PRs touching the calc core merged unverified by any automated gate (see PR #2/#3). This wires the documented merge gate (CLAUDE.md: fmt + clippy + test) into GitHub Actions, running on every PR to master and on pushes to master. Three parallel jobs: - fmt : `cargo fmt --all --check` - clippy : `cargo clippy --workspace --all-targets -- -D warnings` - test : `cargo nextest run --workspace` + workspace doctests clippy/test use Swatinem/rust-cache; test installs nextest and luajit (so the fixture-based extract-lua tooling tests run rather than self-skip). Tests that need the gitignored vendor PoB2 checkout skip gracefully in CI by design.
Avoids every PR push saving its own large target cache (which churns the 10 GB per-repo cache limit and adds a redundant save step). PRs still restore master's warm dependency cache via GitHub's base-branch cache scoping.
GitHub Actions bills per job rounded up to the whole minute, so three jobs floored at ~7 min/run (test alone rounds 4m18s up to 5). One sequential job (fmt -> clippy -> test) bills ~5 min/run, and running the cheap lints first means a fmt/clippy failure exits before the ~4-min test compile — broken PRs cost almost nothing. Trade-off: slightly slower wall-clock, no per-check parallelism (the failing step is still obvious in the log).
Private-repo cost control: run CI on release (pushed v* tag) or on explicit `workflow_dispatch`, instead of on every push/PR. Day-to-day commits no longer spend Actions minutes; you pay only when tagging a release or manually asking for a run. Dropped the master/PR push triggers and the save-if cache gate (no per-PR churn to guard against anymore).
ackness
added a commit
that referenced
this pull request
Jul 17, 2026
…anary Communion/LowLife + Voices sinister sockets land honest gains, recorded per ratchet discipline (old -> new, all measured): - offensive @5% 46 -> 52, @10% 55 -> 59 - dot @5% 11 -> 13, @10% 13 -> 18 - defensive 25-col @5% 410 -> 413, @10% 429 -> 434 - defensive core-8 @5% 138 -> 140 - panel offence @5% 27 -> 38, @10% 30 -> 39 canary_fire_spell_armour (druid-oracle-ember-fusillade) re-verified at TotalDPS 1.00x (548742 vs golden 549423) - the gap-map ~0.60x entry had already been closed by earlier fixes without the canary being revisited; un-ignored.
ackness
added a commit
that referenced
this pull request
Jul 17, 2026
Adds the #4 section (three sub-fixes: Communion/LowLife chain, Voices sinister sockets, grenade phrase un-preemption), the honest aggregate deltas, and the decomposed remaining offence clusters (attack AverageDamage family, titan bifurcated-crit, frost-bomb pre-existing cooldown gap, ritualist low-life EHP calibre note). Includes cargo fmt fixups on the #4a code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
.github/workflows/ci.yml— the repo had no remote CI, so PRs touching the calc core (e.g. #2 → #3) merged without any automated gate.Wires the documented merge gate (CLAUDE.md: fmt + clippy + test) into GitHub Actions. Runs on every PR to
masterand on pushes tomaster.Jobs (parallel)
fmtcargo fmt --all --checkclippycargo clippy --workspace --all-targets -- -D warningstestcargo nextest run --workspace+cargo test --workspace --docclippy/testuseSwatinem/rust-cachefor incremental speed.testinstallsnextestandluajitso the fixture-basedextract-luatooling tests run instead of self-skipping. Tests that require the gitignored vendor PoB2 checkout skip gracefully in CI by design (see CLAUDE.md "Parity 体系").stable(edition 2024 needs ≥ 1.85; the repo pins no MSRV).Self-validating
This workflow runs on this PR (pull_request trigger), so a green check here confirms the gate itself works before it guards future PRs.