Reports

Gooze writes reports after a run. The reports are also used as a cache for incremental runs.

Where reports are stored

Default output directory is usually .gooze-reports/. You can change it with -o/--output.

gooze run -o .gooze-reports ./...

What gets written

  • One YAML file per report, named by hash: <hash>.yaml
  • A summary index file: _index.yaml. When you use --coverage-profile, it also includes a not_covered_mutations count.

Viewing reports

This reads from the output directory and shows results.

gooze report view

If you used a custom output dir, pass it:

gooze report view -o .gooze-reports

Shards and merge

When you run with -s INDEX/TOTAL, Gooze writes into shard directories. After that, you merge:

gooze run -s 0/3 ./...
gooze run -s 1/3 ./...
gooze run -s 2/3 ./...

gooze report merge
gooze report view

This example splits work into 3 jobs, then merges results, then opens the viewer.

Cache behavior (incremental runs)

Gooze can reuse stored reports for unchanged sources. If you want to force a full re-run:

gooze run --no-cache ./...

Storing reports in an OCI registry

Push the reports directory to an OCI registry (e.g. GHCR) so CI and teammates can reuse baseline results, then pull it back to restore the cache.

# push the reports dir as an OCI artifact
gooze report push ghcr.io/your-org/your-repo/gooze-reports:main

# later: pull and extract into the reports dir
gooze report pull ghcr.io/your-org/your-repo/gooze-reports:main

Both commands package/extract the reports dir (-o/--output, default .gooze-reports). Use --plain-http for a non-TLS registry or --insecure to skip TLS verification. Auth comes from the Docker credential store, or GOOZE_REGISTRY_USERNAME / GOOZE_REGISTRY_PASSWORD.