Sharing reports (OCI)

Store the reports directory as an OCI artifact (e.g. in GHCR) so CI and teammates start from the same baseline and only re-test what changed.

Push and pull

Gooze does the packaging and transfer itself — 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:main

Both commands use the reports dir set by -o/--output (default .gooze-reports). Flags: gooze report push, gooze report pull.

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 updated

Publish only from your main branch so pull requests read the baseline but never overwrite it. With shards, every shard pulls, and only the merge job pushes. Full pipelines: GitHub Actions, GitLab CI.

Authentication

  • GOOZE_REGISTRY_USERNAME / GOOZE_REGISTRY_PASSWORD — the password may be a token/PAT.
  • If unset, Gooze falls back to the Docker credential store, so a prior docker login also works.
  • For a non-TLS registry add --plain-http; to skip TLS verification (self-signed certs) add --insecure.

Platform-specific credentials (GITHUB_TOKEN, CI_JOB_TOKEN) are covered on the GitHub and GitLab pages.