oxidecomputer / buildomat

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

jobs could depend on the prior upload of specific published files #46

Open jclulow opened 7 months ago

jclulow commented 7 months ago

Today, a job created through the GitHub integration can depend on other jobs (by name) from the same CI run on the same commit.

If a job on a branch (e.g., for a pull request) needs access to a published file from the latest commit on another branch (e.g., master) for some sort of comparison, one would currently have to poll for those published files. When the files are not available, there is no particularly detailed feedback available as to why: perhaps a job is running that will eventually publish them, or perhaps the job has completed but did not publish the expected files.

It would be good if a job could specify, as a new sort of input dependency:

At a minimum we could hold the job in the waiting state until such a file is published. We may (currently or eventually) also be able to determine to some level of certainty whether such a published file can emerge later, though this will require sorting out a few other things around file publishing that are still a bit nascent today (e.g., see #10).

We could also conceivably arrange to download the file automatically, as we do with output artefacts from dependent jobs today.

hawkw commented 7 months ago

this would be very handy for stuff like https://github.com/oxidecomputer/propolis/pull/609#issuecomment-1894701334

hawkw commented 7 months ago

@jclulow I'd like to take a crack at implementing this, as it would be useful for work I'm doing on Propolis' test framework. If you have the time, it would be great to get some pointers for how I might start going about that?