If you begin the build step with a line that starts with #!, Jenkins will 
assume you want to specify the interpreter instead of using /bin/sh -xe, which 
is the default. It is the -e switch of the shell which is responsible for 
aborting the script when a command exits with error. 

You could place "#!/bin/sh -x" on the first line (without the quotes). But 
remember to watch for errors yourself, then. 

-- Sami

[email protected] kirjoitti 14.8.2012 kello 18.49:

> Hi there,
> 
> I'm using Jenkins to build a C++ project on Solaris 10.
> 
> To set up the environment I'm calling various shell scripts, of which one 
> contains the following code:
> --
> for P in /usr/contrib/bin /usr/local/bin
> do
>        cd $P > /dev/null 2>&1
>        if [ $? -eq 0 ] 
>        then
>                // XYZ
>                echo $P
>        fi
> done
> -- 
> 
> The directory "/usr/contrib/bin" does not exist. This makes the return value 
> in line 3 (cd $P > /dev/null 2>&1) negative and Jenkins stops the build 
> because it appears to be "failed".
> 
> In the job configuration, section "Build shell" it already says that the 
> build is considered failed if one of the commands returns <> 0.
> 
> This script has been used for compilation by many other projects for long 
> time, so I don't really want to change it.
> 
> Is there any workaround or solution to this behaviour (except to create this 
> directory)?
> 
> Regards,
> Natalie

Reply via email to