[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