Ticket #983 (closed support-request: fixed)

Opened 17 months ago

Last modified 17 months ago

single-build buildslaves

Reported by: moschny Owned by:
Priority: major Milestone: 2.0.+
Version: 0.8.1 Keywords:
Cc: thomas.moschny@…

Description

It would be nice if one could configure the buildslaves to shutdown themselves after executing exactly one build.

The use case is this: We are preparing a clean chroot for each build, and want to destroy and recreate it immediately after the build.

Change History

comment:1 follow-up: ↓ 2 Changed 17 months ago by dustin

  • Type changed from enhancement to support-request

Slaves can gracefully shut down already, so you can do this by adding a custom buildstep that calls the slave's shutdown method. You'll need to do some funny stuff to make sure the master doesn't think that the build has failed.

I don't think this is generally useful enough to put into buildbot itself.

comment:2 in reply to: ↑ 1 Changed 17 months ago by moschny

Replying to dustin:

Slaves can gracefully shut down already, so you can do this by adding a custom buildstep that calls the slave's shutdown method. You'll need to do some funny stuff to make sure the master doesn't think that the build has failed.

Seems Mozilla has code for this already:  http://hg.mozilla.org/build/buildbotcustom/file/buildbot-0.8.0/steps/misc.py#l543 (thanks to catlee for sharing the link in IRC.)

I don't think this is generally useful enough to put into buildbot itself.

This will become more and more useful the easier it becomes to create and manage filesystem snapshots (e.g. using btrfs) or snapshots of complete virtual machines (e.g. using libguestfs).

The best and cleanest way to be sure your build (and test) environment hasn't been changed by a previous run, is to throw it away and create a fresh one, and buildbot support for this use case will be needed sooner or later.

comment:3 Changed 17 months ago by dustin

I don't think killing the buildslave is the best technique, though. Could you do the snapshotting within the context of a build?

comment:4 Changed 17 months ago by dustin

  • Type changed from support-request to enhancement
  • Milestone changed from undecided to 1.0.+

comment:5 Changed 17 months ago by moschny

  • Cc thomas.moschny@… added

After some discussion on IRC, best would be to use a LibVirtSlave for what I am trying to achieve.

comment:6 Changed 17 months ago by dustin

  • Status changed from new to closed
  • Type changed from enhancement to support-request
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.