[Buildbot-devel] Reg. Buildslaves - Getting User action during buildprocess.
Scott Lamb
slamb at slamb.org
Thu Mar 29 18:03:30 UTC 2007
On Mar 29, 2007, at 4:25 AM, Vengatachalam, Sakthivel wrote:
> 4. tell the user to switch-on the target system (by default it will
> be switched off, only after the build (step 1-3) and before the
> test execution (step 5-8) it should be switched on, It is mandatory
> – is purely a manual process), after that get the input from user;
> whether to continue or abort the build (its important because many
> of the times the target system will be busy in other process/
> activities)
Why not use a dedicated machine or virtualization instead? The thing
about manual processes is that people don't really do them. buildbot
makes a great continuous integration system - you check something in,
it tells you if it worked or not, entirely on its own. You can
completely forget about it until it tells you something's wrong. If
you try a different model, I think you won't get much result for your
hard work.
> I don’t know whether it uses a pseudo terminal for running builds
> at build-slaves. If this is the case then I can use a yes/no dialog
> cmd to prompt the user for action. But I don’t know how to prompt a
> user in a virtual console or any other consoles. But the user
> should decide whether to continue or abort the entire build process.
There's an option to create a pseudo-terminal, but you seem to think
that means this prompt will appear on a screen where you can respond,
and it doesn't. It's just a trick to get different buffering behavior
than a straight pipe, entirely orthogonal to interacting with consoles.
If you are going to do this manual thing, you might try this:
* Have one Builder to do the first three steps, use FileUpload to
save the kernel to the buildmaster, and send an email notification.
* Have a second Builder grab a file indicated by the revision number,
then fire off steps 5-8 on the target. (Note this Builder must still
use a buildslave which is different than the target system, as the
TCP connection to the buildmaster must be open during the entire
build, during which the target will be rebooting.)
* Either just use the "force build" page to fire off the second
builder, or write a trigger that does it based on a reply to the
email notification.
Doing it this way means that you never have a build waiting on user
input, which has lots of advantages:
(1) the build timeout doesn't apply to your user input
(2) if they say no to a test run, they can change their minds
later...even if another build has gone by
(3) it doesn't limit the concurrency. (currently buildbot can't be
running two builds of the same Builder on the same buildslave
simultaneously.)
(4) buildbot's estimated build time calculation isn't skewed by an
unpredictable delay waiting for user reply
--
Scott Lamb <http://www.slamb.org/>
More information about the devel
mailing list