At present, if you add a [[publish]] directive to the TOML, but something about it was wrong, we not only do not fail the job but we don't even report the problem. This happens in wollogong, in the basic variety code:
/*
* Resolve any publishing directives. For now, we do not handle
* publish rules that did not match any output from the actual job.
* We also do not yet correctly handle a failure to publish, which
* will require more nuance in reported errors from Dropshot and
* Progenitor. This feature is broadly still experimental.
*/
for p in c.publish.iter() {
if let Some(o) =
outputs.iter().find(|o| o.path == p.from_output)
{
b.job_output_publish(
jid,
&o.id,
&buildomat_openapi::types::JobOutputPublish {
series: p.series.to_string(),
version: cs.head_sha.to_string(),
name: p.name.to_string(),
},
)
.await
.ok();
}
}
At present, if you add a
[[publish]]
directive to the TOML, but something about it was wrong, we not only do not fail the job but we don't even report the problem. This happens in wollogong, in the basic variety code:https://github.com/oxidecomputer/buildomat/blob/085e7685f3d3a6b99edbd7fb336533c84bf64fbe/github/server/src/variety/basic.rs#L420-L443
It is probably time to consider this less experimental: