Documentation
¶
Overview ¶
Command stevedore releases Docker/OCI images from a declarative config, the way goreleaser releases binaries.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package cmd implements the stevedore CLI.
|
Package cmd implements the stevedore CLI. |
|
internal
|
|
|
builder
Package builder invokes `docker buildx build` to build and push images.
|
Package builder invokes `docker buildx build` to build and push images. |
|
changed
Package changed decides which images a change set touches, using per-image dependency globs plus shared globs — the granularity a "one Dockerfile, many images" monorepo needs so unchanged services are skipped.
|
Package changed decides which images a change set touches, using per-image dependency globs plus shared globs — the granularity a "one Dockerfile, many images" monorepo needs so unchanged services are skipped. |
|
changelog
Package changelog builds release notes from conventional-commit history.
|
Package changelog builds release notes from conventional-commit history. |
|
config
Package config defines the stevedore configuration schema and loading/validation.
|
Package config defines the stevedore configuration schema and loading/validation. |
|
fingerprint
Package fingerprint computes a content hash of an image's build inputs so a monorepo release can skip rebuilding images whose inputs are unchanged.
|
Package fingerprint computes a content hash of an image's build inputs so a monorepo release can skip rebuilding images whose inputs are unchanged. |
|
gitinfo
Package gitinfo derives release metadata (version, commit, branch) from git.
|
Package gitinfo derives release metadata (version, commit, branch) from git. |
|
importer
Package importer converts an existing docker-bake or GoReleaser config into a stevedore config, so teams can adopt stevedore without hand-writing one.
|
Package importer converts an existing docker-bake or GoReleaser config into a stevedore config, so teams can adopt stevedore without hand-writing one. |
|
jsonschema
Package jsonschema generates a JSON Schema (draft-07) from a Go struct, keyed by its yaml tags, so editors can validate and autocomplete the config.
|
Package jsonschema generates a JSON Schema (draft-07) from a Go struct, keyed by its yaml tags, so editors can validate and autocomplete the config. |
|
pipeline
Package pipeline orchestrates the build/push/sign/sbom/changelog stages.
|
Package pipeline orchestrates the build/push/sign/sbom/changelog stages. |
|
preflight
Package preflight verifies the external tools stevedore shells out to (docker/buildx, git, cosign, syft) are present before a pipeline runs, so a missing dependency fails fast with an install hint instead of halfway through a release.
|
Package preflight verifies the external tools stevedore shells out to (docker/buildx, git, cosign, syft) are present before a pipeline runs, so a missing dependency fails fast with an install hint instead of halfway through a release. |
|
projgraph
Package projgraph resolves a project's transitive source dependencies so that change detection can scope each image to exactly the directories it is built from — even when many images share one Dockerfile and build context.
|
Package projgraph resolves a project's transitive source dependencies so that change detection can scope each image to exactly the directories it is built from — even when many images share one Dockerfile and build context. |
|
publish
Package publish handles post-build release steps: creating a GitHub release and announcing to chat webhooks (Slack, Discord).
|
Package publish handles post-build release steps: creating a GitHub release and announcing to chat webhooks (Slack, Discord). |
|
run
Package run wraps external command execution with dry-run and verbose modes.
|
Package run wraps external command execution with dry-run and verbose modes. |
|
sbom
Package sbom generates software bills of materials for pushed images.
|
Package sbom generates software bills of materials for pushed images. |
|
sbomdiff
Package sbomdiff compares two SBOMs (SPDX or CycloneDX JSON) and renders the added, removed, and upgraded packages as a Markdown section for the changelog.
|
Package sbomdiff compares two SBOMs (SPDX or CycloneDX JSON) and renders the added, removed, and upgraded packages as a Markdown section for the changelog. |
|
scaffold
Package scaffold generates a starter stevedore config by scanning a repository for Dockerfiles.
|
Package scaffold generates a starter stevedore config by scanning a repository for Dockerfiles. |
|
scanner
Package scanner runs a vulnerability scanner (grype or trivy) against a built image and, when configured, gates the release on a severity threshold.
|
Package scanner runs a vulnerability scanner (grype or trivy) against a built image and, when configured, gates the release on a severity threshold. |
|
signer
Package signer signs pushed images with cosign.
|
Package signer signs pushed images with cosign. |
|
summary
Package summary builds the machine- and human-readable report of a release: a JSON document, and a Markdown table for the GitHub Actions job summary.
|
Package summary builds the machine- and human-readable report of a release: a JSON document, and a Markdown table for the GitHub Actions job summary. |
|
tester
Package tester runs a built image as a smoke test and gates the release on it.
|
Package tester runs a built image as a smoke test and gates the release on it. |
|
tmpl
Package tmpl renders Go text/templates against the release context.
|
Package tmpl renders Go text/templates against the release context. |
|
verifier
Package verifier checks the supply-chain artifacts attached to a pushed image: the cosign signature, the SBOM attestation, and the SLSA provenance.
|
Package verifier checks the supply-chain artifacts attached to a pushed image: the cosign signature, the SBOM attestation, and the SLSA provenance. |
|
versioner
Package versioner derives the release version string from a configurable source: git tags, an existing registry's tags, a static value, an environment variable, or the output of a command.
|
Package versioner derives the release version string from a configurable source: git tags, an existing registry's tags, a static value, an environment variable, or the output of a command. |
Click to show internal directories.
Click to hide internal directories.