{{define "title"}}Build provenance ยท MeshTender{{end}} {{define "header"}}
Administration

Build provenance

{{end}} {{define "content"}} {{if .Reproducible}} {{else}} {{end}}

What this binary was built from

Commit
{{if .Build.Commit}}{{.Build.Commit}}{{else}}not stamped{{end}}
Commit time
{{if .Build.CommitTime}}{{.Build.CommitTime}}{{else}}not stamped{{end}}
Working tree
{{if .Build.Modified}}modified{{else}}clean{{end}}
Go toolchain
{{.Build.Go}}
Platform
{{.Build.OS}}/{{.Build.Arch}}

Artifact hashes

Image digest (reported by the deployment)
{{if .Build.ImageDigest}}
Compare this against the digest mise run image prints. A binary can't derive its own image digest, so this value is supplied by the deployment (MESHTENDER_IMAGE_DIGEST), which CI sets from the digest it published. {{else}} Not reported. Set when the deployment passes MESHTENDER_IMAGE_DIGEST; unset for a run from source. {{end}}
Executable SHA-256 (measured here, at runtime)
{{if .Build.ExecutableSHA256}}
The only value on this page measured from the running process rather than reported by the pipeline. To check it, extract /ko-app/meshtender from a locally built image and hash it. {{else}} Unavailable — the executable could not be read. {{end}}
{{if .Reproducible}}

Reproduce this build

Run these from a clean checkout. Go stamps the commit, its time, and a dirty-tree flag into the binary, so the tree has to be exactly this commit with no local edits or the digest will differ.

Installs the pinned Go toolchain and ko — a different compiler produces a different binary.
Builds for this deployment's platform and prints a digest. It pushes nothing and needs no registry access.
{{end}} {{template "icon-arrow-left" "me-1"}}Back to admin {{end}}