I’m trying to convert a custom CI solution (ci.riot-os.org) to Drone.
The custom solution includes job distribution to connected worker nodes, but it is quite fixed as in it has fixed container images and no way to specify them on a per-build basis. Drone would simplify our lives a lot …
So basically, I’d like to use Drone to set up and schedule builds, start containers on the runners etc, but then leverage the existing method to run jobs. The reason to go with the existing job distribution is that is is highly optimized for the use case (building around 70k variants of the RIOT OS and processing the results).
What I’m missing for this to work is a way to run one pipeline instance on each available runner (with a certain label).
The available runners are quite dynamic (they get disabled when the resources are used otherwise), so hard-coding running the pipeline to run on each runner using labels is not feasible.
Is there any way to express this for Drone?
Reading through the docs, I think it might be possible to use a configuration or conversion extension to add the per-runner pipelines depending on the availability of runners. But how do I get information on available runners?
How would I specify a pipeline that should run but it doesn’t matter if it doesn’t even start or if it goes down halfway through the build?
Thanks in advance!