Ticket #983 (closed support-request: fixed)
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
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.+
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
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.