Skip to content

ci: add GitHub Actions workflow (fmt + clippy + nextest)#4

Merged
ackness merged 4 commits into
masterfrom
chore/add-ci
Jun 26, 2026
Merged

ci: add GitHub Actions workflow (fmt + clippy + nextest)#4
ackness merged 4 commits into
masterfrom
chore/add-ci

Conversation

@ackness

@ackness ackness commented Jun 26, 2026

Copy link
Copy Markdown
Owner

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 master and on pushes to master.

Jobs (parallel)

Job Command
fmt cargo fmt --all --check
clippy cargo clippy --workspace --all-targets -- -D warnings
test cargo nextest run --workspace + cargo test --workspace --doc
  • clippy/test use Swatinem/rust-cache for incremental speed.
  • test installs nextest and luajit so the fixture-based extract-lua tooling tests run instead of self-skipping. Tests that require the gitignored vendor PoB2 checkout skip gracefully in CI by design (see CLAUDE.md "Parity 体系").
  • Toolchain: 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.

ackness added 4 commits June 26, 2026 11:08
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
ackness merged commit 311e1f2 into master Jun 26, 2026
@ackness
ackness deleted the chore/add-ci branch June 26, 2026 03:31
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.
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