2017-03-10 11 views
0

私は単一のシェル実行ビルドステップで複数のコマンドを実行しようとしています。これらのコマンドの1つが0以外のコードで終了すると、ビルドはただちに失敗します。これはデフォルトでの仕組みです。終了コード!= 0の場合、Jenkinsはすべてのコマンドを実行した後にビルドに失敗します。

1つ以上の終了コード0が指定されていても、このビルドステップですべてのコマンドを実行し続けたいと考えています。これらのコマンドがすべて実行された後、終了コードが0以外の場合はビルドが失敗します。

コンソールコマンドを使用し、(シェル)スクリプトを使用しないでこれを行う方法はありますか?これらは、PHPコード解析のためのものであると私は失敗の前に間違っているすべてを知りたい知っているかもしれませんが

git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 -P8 php -l 
git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 phpcs --standard=PSR2 
git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 -I file phpmd file text cleancode,codesize,controversial,design,naming,unusedcode 

を:

これらのコマンドは、私が実行しようとしているものです。

ご協力いただきありがとうございます。殻付き

答えて

1

そのうちの一つが故障した場合に記録し、その変数は、スクリプトの最後に設定されているかどうかを確認するために変数を使用する:あなたのケースでそう

FAILURE=0 
command1 || FAILURE=1 
command2 || FAILURE=1 
command3 || FAILURE=1 

if [ $FAILURE -eq 1 ] 
then 
    echo "One or more failures! 
    exit 1 
fi 

:確かに

FAILURE=0 
git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 -P8 php -l || FAILURE=1 
git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 phpcs --standard=PSR2 || FAILURE=1 
git diff origin/develop --name-only --diff-filter=AM | grep .php | xargs -n1 -I file phpmd file text cleancode,codesize,controversial,design,naming,unusedcode || FAILURE=1 

if [ $FAILURE -eq 1 ] 
then 
    echo "One or more failures! 
    exit 1 
fi 
0

、あなたが行うことができます:

command || true; 

コマンドが失敗することを可能にするために。

+0

を、まだそれらのコマンドのどれかにエラーがあってもビルドが成功するでしょう。 – Asperitas

関連する問題