[Buildbot] #1795: add python script slave-side command

Buildbot trac trac at buildbot.net
Sat Jun 14 15:47:54 UTC 2014


#1795: add python script slave-side command
------------------------+--------------------
Reporter:  dustin       |       Owner:
    Type:  enhancement  |      Status:  new
Priority:  major        |   Milestone:  0.8.+
 Version:  0.8.3p1      |  Resolution:
Keywords:  sprint       |
------------------------+--------------------
Changes (by Jc2k):

 * milestone:  0.8.9 => 0.8.+


Old description:

> Complex slave-side functionality is often written as a big 'ol master-
> side shell script, e.g.,
>  https://github.com/buildbot/metabbotcfg/blob/master/builders.py
>
> This works pretty well for systems with a shell (although you still need
> to deal with shell portability issues), but is problematic for Windows.
>
> It's not particularly difficult to run Python scripts slave-side right
> now, either.  Usually you'll use a FileDownload to send the script, and
> then a ShellCommand to invoke Python.  That requires knowing with Python
> is installed, though, which varies from platform to platform.  But the
> Buildbot-slave code is running in the python interpreter and knows
> exactly what its pathname is ({{{sys.executable}}})!
>
> So this is proposing adding a slave-side command that can take a string
> and execute it in a freshly-spawned Python interpreter on the slave.

New description:

 Complex slave-side functionality is often written as a big 'ol master-side
 shell script, e.g.,
  https://github.com/buildbot/metabbotcfg/blob/master/builders.py

 This works pretty well for systems with a shell (although you still need
 to deal with shell portability issues), but is problematic for Windows.

 It's not particularly difficult to run Python scripts slave-side right
 now, either.  Usually you'll use a FileDownload to send the script, and
 then a ShellCommand to invoke Python.  That requires knowing with Python
 is installed, though, which varies from platform to platform.  But the
 Buildbot-slave code is running in the python interpreter and knows exactly
 what its pathname is ({{{sys.executable}}})!

 So this is proposing adding a slave-side command that can take a string
 and execute it in a freshly-spawned Python interpreter on the slave.

--

--
Ticket URL: <http://trac.buildbot.net/ticket/1795#comment:7>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list