Occasionally, it is useful to execute some task on the master, for example to
create a directory, deploy a build result, or trigger some other centralized
processing. This is possible, in a limited fashion, with the
MasterShellCommand step.
This step operates similarly to a regular ShellCommand, but executes on
the master, instead of the slave. To be clear, the enclosing Build
object must still have a slave object, just as for any other step – only, in
this step, the slave does not do anything.
In this example, the step renames a tarball based on the day of the week.
from buildbot.steps.transfer import FileUpload
from buildbot.steps.master import MasterShellCommand
f.addStep(FileUpload(slavesrc="widgetsoft.tar.gz",
masterdest="/var/buildoutputs/widgetsoft-new.tar.gz"))
f.addStep(MasterShellCommand(command="""
cd /var/buildoutputs;
mv widgetsoft-new.tar.gz widgetsoft-`date +%a`.tar.gz"""))