[users at bb.net] How to preface one ShellCommand with another?

Greg Bullock greg at nwra.com
Thu Jul 26 19:01:38 UTC 2018


Thank you for the fine suggestions, Gabe.

The shell script suggestion should work just fine for me.

-Greg


On 7/26/2018 11:54 AM, Gabriel Nagy wrote:
> Hi Greg,
>
> First solutions that come to my mind are to maybe create a shell 
> script for the whole command sequence (lazier) or, Buildbot supports 
> setting environment variables for specific commands with env, like 
> here: 
> http://docs.buildbot.net/latest/manual/cfg-buildsteps.html#using-shellcommands
>
> Hope this helps,
> Gabe
>
> On Jul 26, 2018, at 09:46 PM, Greg Bullock <greg at nwra.com> wrote:
>
>> I'm using Buildbot version: 1.3.0.  Is there a way to perform a 
>> specific ShellCommand as a preface for the shell of a subsequent 
>> ShellCommand or for multiple, subsequent ShellCommands?
>>
>> I'd like a Step or set of Steps to perform the following sequence of 
>> commands on our Linux-based builders:
>>
>> module load intel
>>
>> cmake -DCMAKE_Fortran_COMPILER=ifort ../prj/my_project
>>
>> make all
>>
>> The first command here prepares the environment (PATH and 
>> LD_LIBRARY_PATH) and possibly makes some other changes to select the 
>> desired version of, and acquire the floating license for, the 
>> compiler used by the two subsequent commands.
>>
>> The step needs have haltOnFailure=False for the first command, but 
>> haltOnFailure=True for the two subsequent commands.
>>
>> The option to use
>>
>> steps.ShellCommand(
>>
>>     command=['module', 'load', 'intel',
>>
>>         ';',
>>
>>         'cmake', '-DCMAKE_Fortran_COMPILER=ifort', '../prj/my_project'],
>>
>>     haltOnFailure=True)
>>
>> and
>>
>> steps.ShellCommand(
>>
>>     command=['module', 'load', 'intel',
>>
>>         ';',
>>
>>         'make', 'all'],
>>
>>     haltOnFailure=True)
>>
>>
>> has the problem that the haltOnFailure=True applies to the first 
>> command (module load intel) as well as the subsequent command, which 
>> is not desired.
>>
>> Another option, to use
>>
>> steps.ShellSequence(commands = [
>>
>>     util.ShellArg(command = ['module', 'load', 'intel'], 
>> haltOnFailure=False),
>>
>>     util.ShellArg(command = ['cmake', 
>> '-DCMAKE_Fortran_COMPILER=ifort', '../prj/my_project'], 
>> haltOnFailure=True),
>>
>>     util.ShellArg(command = ['make', 'all'], haltOnFailure=True),
>>
>>     ])
>>
>> has the problem that the preparation of the shell environment by the 
>> first ShellArg does not apply to the next two ShellArgs.
>>
>> Is there some adjust to either of these options to get what I need?  
>> Or is there some other way to get what I need?
>>
>> If there were a way to set the Builder so the 'module load intel' 
>> command automatically applies to all its build steps, that would 
>> suffice for my purposes.
>>
>>
>> -- 
>> Greg Bullock
>> NorthWest Research Associates
>> 301 Webster St.
>> Monterey, CA  93940
>> (831) 582-4907
>> greg at nwra.com
>> _______________________________________________
>> users mailing list
>> users at buildbot.net <mailto:users at buildbot.net>
>> https://lists.buildbot.net/mailman/listinfo/users

-- 
Greg Bullock
NorthWest Research Associates
301 Webster St.
Monterey, CA  93940
(831) 582-4907
greg at nwra.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildbot.net/pipermail/users/attachments/20180726/aea5541a/attachment.html>


More information about the users mailing list