<div dir="ltr">Thanks, that's resolved it.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 5, 2016 at 10:12 PM, Charles Lepple <span dir="ltr"><<a href="mailto:clepple@gmail.com" target="_blank">clepple@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class="">On Jan 4, 2016, at 1:50 PM, Chris Spencer <<a href="mailto:chrisspen@gmail.com" target="_blank">chrisspen@gmail.com</a>> wrote:<br></span><div><span class=""><blockquote type="cite"><br><div><div dir="ltr"><div><div>How do you configure a builder to run a specific script in your source?<br><br>I have a "runtests" script in my code which creates the Python virtualenv, creates an in-memory test database, and runs all unittests, but when I enter a builder command like "cd src/myproject; runtests", I get the error:<br><br>    Upon execvpe cd src/myproject; ./runtests ['cd src/myproject; ./runtests'] in environment id 140610380051352<br>    :Traceback (most recent call last):<br>      File "/usr/lib/python2.7/dist-packages/twisted/internet/process.py", line 403, in _fork<br>        path, uid, gid, executable, args, environment)<br>      File "/usr/lib/python2.7/dist-packages/twisted/internet/process.py", line 453, in _execChild<br>        os.execvpe(executable, args, environment)<br>      File "/usr/lib/python2.7/os.py", line 353, in execvpe<br>        _execvpe(file, args, env)<br>      File "/usr/lib/python2.7/os.py", line 368, in _execvpe<br>        func(file, *argrest)<br>    OSError: [Errno 2] No such file or directory<br></div></div></div></div></blockquote></span><div><div dir="ltr"><div><div><br></div><div>This is subtle, but it's the first item addressed here: <a href="http://trac.buildbot.net/wiki/FAQ" target="_blank">http://trac.buildbot.net/wiki/FAQ</a></div><div><br></div><div>The third question clarifies the "command=" parameter: passing a Python string is like calling system(): good for simple commands, but can break in unexpected ways. If you enclose the string in a list, it's more like calling exec*(), where you are specifying the contents of argv[].</div><div><br></div></div></div></div><span class=""><blockquote type="cite"><div><div dir="ltr"><div><div>presumably because Buildbot's default CWD is not the same as my code's clone directory.<br></div><div><br></div>The tutorial (<a href="http://docs.buildbot.net/current/tutorial/tour.html" target="_blank">http://docs.buildbot.net/current/tutorial/tour.html</a>) is a little confusing. It calls "trial pyflakes", which is a globally-accessible command, so it's not clear how Buildbot knows where anything is. How do I construct my command to reference Buildbot's CWD and the location where it checks-out my code?<br></div></div></div></blockquote></span></div><div><br></div><div>I'm not sure where in the documentation this is more formally specified, but in 0.8.x, the initial working directory for a ShellCommand is 'build' under the directory listed in the 'workdir' property. If in doubt as to what this expands to, check the stdio log for the step. This should be mostly transparent once the command parameter above is fixed.</div><span class="HOEnZb"><font color="#888888"><br><div>
<span style="border-collapse:separate;border-spacing:0px"><div>-- </div><div>Charles Lepple</div><div>clepple@gmail</div><div><br></div></span><br>

</div>
<br></font></span></div></blockquote></div><br></div>