oxidecomputer / buildomat

a software build labour-saving device
Mozilla Public License 2.0
53 stars 2 forks source link

file publishing should report errors #10

Open jclulow opened 1 year ago

jclulow commented 1 year ago

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();
                }
            }

https://github.com/oxidecomputer/buildomat/blob/085e7685f3d3a6b99edbd7fb336533c84bf64fbe/github/server/src/variety/basic.rs#L420-L443

It is probably time to consider this less experimental: