Incremental execution
Gooze caches mutation results and skips unchanged files on subsequent runs. Use --no-cache to force a full re-test.
Output directory -o/--output
Choose where reports are written. This is also where the incremental cache lives.
gooze run -o .gooze-reports ./...Reports are written as one YAML per run (<hash>.yaml) plus an index (_index.yaml).
OCI reports (push / pull)
Store and retrieve reports as OCI artifacts (e.g. in GHCR) so CI and teammates can reuse baseline results. Gooze does the packaging and transfer for you with gooze report push and gooze report pull — no tar or external tooling required.
# package the reports dir and push it 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:mainBoth commands use the reports dir set by -o/--output (default .gooze-reports). Add --plain-http for a non-TLS registry or --insecure to skip TLS verification. Auth comes from the Docker credential store, or the GOOZE_REGISTRY_USERNAME / GOOZE_REGISTRY_PASSWORD environment variables.
Incremental CI flow
Restore the previous baseline, run incrementally, then publish the updated reports:
gooze report pull ghcr.io/org/repo/gooze-reports:main # restore baseline
gooze run ./... # incremental run
gooze report push ghcr.io/org/repo/gooze-reports:main # publish updatedFor a complete GitHub Actions workflow (GHCR auth, sharding, PRs vs. main), see CI / GitHub Actions.