[users at bb.net] Trigger new build/scheduler when two related builds are finished
Yngve N. Pettersen
yngve at vivaldi.com
Mon Jul 31 09:00:56 UTC 2023
Hello all,
We have a build sequence that consists of two separate builds that are then
combined into a single product (specifically, this concerns Mac x64 and
arm64 builds being used to generate a universal DMG installer)
At present we are building both sequentially on the same build worker which
makes the system work, but we are now preparing a new worker that will be
used for the arm64 build.
The plan is to start both builds at the same time, but that prevents the
transfer of the (build properties) data necessary to combine the products
into a universal installer. We could, of course, continue with the
sequential builds, but the reason for the second builder is that these
combined builds take very long to generate.
The Dependent scheduler
<http://docs.buildbot.net/current/manual/configuration/schedulers.html#dependent-scheduler>
(which, BTW is still the v3.6 version of the documentation, not the v3.8
version) seems to fit the bill for what we need, *except* that it depends
on *all* the builds triggered by the initial scheduler, not just specific
builders in that set. That is not desirable in our scenario.
What we need is something like
--------------
from buildbot.plugins import schedulers
build = schedulers.SingleBranchScheduler(name="build",
treeStableTimer=5*60,
builderNames=["builder1",
"builder2", "builder3", ..., "builderN"])
second_step = schedulers.Dependent(name="second-step"",
upstream=build,
upstream_builders=["builder1", "builder2"]
builderNames=["second_step_builder"])
---------------
This would trigger "second-step" when both "builder1" and "builder2" have
completed their jobs, ignoring the state of the other builders.
Is there any way to accomplish this currently, either directly, or by
creating a subclass of Dependent?
There is, however, if I read the documentation correctly, a problem with
Dependent: It sounds like there is no transfer of build properties from the
upstream builders, which is a problem, since those properties are necessary
to inform the second step builder where to locate the data needed for its
build.
A different method that might work better could be a scheduler that
triggers when it has received all Triggers from specific builders in a
particular scheduler job
Any thoughts about this possibility?
--
Sincerely,
Yngve N. Pettersen
Vivaldi Technologies AS
More information about the users
mailing list