Skip to content

Add CI workflow with coverage gate and pin the Rust toolchain - #424

Draft
gmiliaras wants to merge 3 commits into
mainfrom
2.0.x
Draft

Add CI workflow with coverage gate and pin the Rust toolchain#424
gmiliaras wants to merge 3 commits into
mainfrom
2.0.x

Conversation

@gmiliaras

@gmiliaras gmiliaras commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Adds CI for the repo, which has had no workflows since the v2 rewrite.

  • .github/workflows/ci.yml: fmt, clippy (warnings denied), tests and doctests on Linux and Windows, a 90% line-coverage floor, and a release build on every PR and push to main. Also fixes the CodeQL "no source code seen" failure by giving it workflow sources to scan.
  • rust-toolchain.toml pins Rust 1.98 so local and CI results match.
  • make now runs the same checks as CI; make help lists all targets.
  • Drops inert grcov marker comments, fixes a clippy 1.98 lint (result_unit_err), and fixes test portability issues the new CI surfaced (the Windows test build and dash-as-/bin/sh had never been exercised before).

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.

Giorgos Miliaras added 2 commits September 7, 2026 16:10
The default target now runs every check the release process expects:
formatting, clippy, the test suite with a 90% line-coverage floor,
doctests, and a release build. fmt checks and fmt-fix formats; lint
runs the fast format-and-clippy loop; help lists all targets. Update
README and DEVELOPMENT to match.
Run cargo fmt --check, clippy with warnings denied, the full test
suite, a coverage check enforcing a 90% line floor, and a release
build on Linux and Windows for every push and pull request against
main. Replaces the Ruby-era workflow that was removed with the v2
rewrite, and gives CodeQL's GitHub Actions analysis workflow sources
to scan.

Pin the Rust toolchain to 1.98 so local builds and CI run the same
compiler, rustfmt, and clippy.
@gmiliaras gmiliaras changed the title Strip leading backslashes from AppSpec paths on Windows Add CI workflow with coverage gate and pin the Rust toolchain Sep 7, 2026
Remove the grcov exclusion marker comments; coverage is now measured
with cargo-llvm-cov, which does not read them, so they were inert.
Replace DeadlineJoiner::join's Result<T, ()> with a DeadlineExceeded
error type to satisfy clippy::result_unit_err.

Also fix test-suite portability issues surfaced by CI.
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