Expand description
Shared buildah commit-marker → BuildEvent progress reconstruction.
Buildah’s frontend (buildah build) does not emit structured per-instruction
events; it prints exactly one commit marker line per executed instruction:
--> <hex> (a fresh layer) or --> Using cache <hex> (a cache hit). The
stage FROM line does NOT get a --> marker.
InstructionProgress walks a pre-computed, flattened list of planned
instructions (in Dockerfile order, FROM excluded) and, as each marker
arrives on a log line, advances a cursor and reconstructs the matching
BuildEvent::InstructionComplete / BuildEvent::StageComplete /
next BuildEvent::InstructionStarted events. Non-marker lines are
forwarded verbatim as BuildEvent::Output.
This logic is shared between the buildah-sidecar backend (whose Go buildd
only streams Log lines) and the buildah-CLI backend (which runs a single
buildah build and parses its stdout/stderr the same way).
Structs§
- Instruction
Progress - Tracks build progress by parsing buildah commit markers out of the build’s log stream and reconstructing per-instruction TUI events.