Reading release runs
Reading release runs
stado release status stado --json shows the recorded release runs, including
each platform's builder, job ID, state, and failure. A recorded platform failure
can describe a publisher read error rather than a failed worker; resumption
checks the job and its build receipt before deciding whether another attempt
is needed. A published platform can retain a failed job whose passing build
receipt and archive were recovered; the qualification receipt records the
successful build and the job record preserves the failed upload.
A product that release control holds no rollout policy for, and that no
recorded run names, is answered from the release store: stado release status <product> prints published <product> <version> <platform> from <revision>
per platform release the store holds, the revision read from that coordinate's
own claim (source-revision.json; whose source revision could not be read: <cause> when it cannot be, and (claim only, no artifact written) beside a
coordinate that holds its claim alone), and --json prints {targets: [], fleet: [], runs: [], published: [{product, version, platform, claimOnly, sourceRevision, unread}]}. Oko reads published as it reads published runs,
so a release whose runs aged out still carries its commits. The same holds where
registry.release_control is not configured at all. Only a product none of the
three sources holds is refused (release control holds no rollout policy for "<product>"; …, or … the release store holds no release of it); a store that
cannot be listed refuses with that refusal and the store's cause together.
Every saved run is also filed under its product
(runs/release-pipeline-by-product/<product>/<run id>), so a question about
one product's runs, such as stado release status tama or a delivery's
check for the newest published run, reads only that product's run objects.
Runs saved before the index existed are filed by the next
stado release newest, which already reads every run once; until then a
product question reads every run object and says so on stderr
([release runs] runs are not indexed by product yet …). The completion
marker (runs/release-pipeline-by-product.complete) holds the newest run
object time the index covers, and every product question first lists the run
objects and files each one saved after that time, so a run saved by a host
still on a Stado that writes no marker is listed for its product too; a
marker written before it held a time covers what was saved before the marker
was written. A run object that names no product or run id refuses the
question with its path, and an unreadable marker time refuses it with the
marker's words.
Source: this website