Skip to content

Repository files navigation

Nashira

Deterministic CI report cards for JUnit, SimpleCov, and benchmark JSON.

Gem version Gem downloads CI Ruby 3.2 or newer MIT license

Features · Installation · Quick start · GitHub Action · Failure policies · Development


Nashira creates deterministic CI report cards from JUnit, SimpleCov, and benchmark JSON. Every build writes both a PNG and a Markdown summary, so the report remains useful when images are unavailable.

Features

  • One CI snapshot — combine tests, coverage, benchmarks, and run metadata.
  • Resilient parsing — malformed report files become visible warnings.
  • Deterministic output — render repeatable PNG cards through Zaniah.
  • Markdown fallback — always emit a readable table for Job Summaries.
  • Coverage history — retain up to 50 points and show recent trends.
  • Failure policies — fail on test failures or coverage regression.
  • GitHub integration — cache history, publish a history branch, or update a pull request comment.

Installation

gem install nashira

Nashira requires Ruby 3.2 or newer.

Quick start

nashira build \
  --junit "tmp/junit/*.xml" \
  --coverage coverage/.last_run.json \
  --bench tmp/benchmarks.json \
  --history .ci-history/history.json \
  --out nashira-card.png \
  --summary nashira-summary.md

The Markdown output includes test counts, coverage and delta, benchmark values, slow tests, failures, and a coverage trend when enough history exists.

GitHub Action

permissions:
  contents: read

steps:
  - uses: actions/checkout@v4
  - name: Run tests
    run: bundle exec rake
  - uses: noxdea/nashira@v0.1.0
    with:
      junit: "tmp/junit/*.xml"
      coverage: coverage/.last_run.json
      bench: tmp/benchmarks.json

The action appends the generated Markdown to GITHUB_STEP_SUMMARY and caches history by default.

Input Default Description
junit — JUnit glob
coverage — SimpleCov JSON path
bench — Benchmark JSON path
history .ci-history/history.json History JSON path
out nashira-card.png PNG output path
summary nashira-summary.md Markdown output path
history-branch — Orphan branch used for persistent history and the image
comment-on-pr false Update one Nashira pull request comment

history-branch requires contents: write. Pull request comments require issues: write; pass github-token only when the default token is not suitable.

Failure policies

Fail when tests fail:

nashira build --junit "tmp/junit/*.xml" --fail-on tests

Fail when coverage drops below an explicit baseline:

nashira build \
  --coverage coverage/.last_run.json \
  --base-coverage 92.5 \
  --fail-on coverage-drop

Use --theme, --title, --branch, --commit, and --run-url to attach presentation and run metadata.

Development

bundle install
bundle exec rake
bundle exec rbs -I sig validate
gem build --strict nashira.gemspec

Contributing

Bug reports and pull requests are welcome on GitHub.

License

Nashira is available under the MIT License.

About

Deterministic CI report cards for JUnit, SimpleCov, and benchmark JSON

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages