Lumitrace
See what your Ruby code actually did — per pull request.
Lumitrace instruments the lines a PR touches, records the expression values while your tests run, and posts a GitHub Check with a coverage summary and a link to a full HTML report overlaying those values on your code.
Add it to a workflow
Take your existing test workflow and add the highlighted lines — your test command stays exactly the same:
name: test on: pull_request permissions: checks: write contents: read id-token: write # upload the report (omit = PR check only) jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: { bundler-cache: true } - uses: ko1/lumitrace-action/setup@v1 - run: bundle exec rake test # unchanged - uses: ko1/lumitrace-action/report@v1 if: always()
Tests split across parallel jobs? See sharded test suites to merge them into one report.
Where results appear
One pull-request run surfaces in three places — each more detailed than the last:
① + ② are the PR check itself, posted with checks: write. ③ is
optional: add id-token: write and the report is uploaded and
linked from ②; without it, nothing is uploaded.
Hosted reports
- Public repos — reports are world-readable; no app install needed.
- Private repos free during beta · paid later — install the Lumitrace Reports app on the repo. Viewing then requires a GitHub login with access to it; private source and values never leak.
- Reports are kept for 7 days.
Example reports
- Default report — type and hit counts per line
(
collect-mode: types), the out-of-the-box behaviour. - With recorded values
— the actual values overlaid on each line (
collect-mode: last).