8

コマンドが失敗したときにエラーで中止したり、別のタスクを呼び出したりすることは可能ですか?

これは機能しません:

@task('migrate', ['on' => 'web'])
    cd {{ $currentReleaseDir }};
    php artisan migrate || exit 1;
@endtask

次のメッセージで失敗します (I know I can run --force, it's just a way to make the command fail for testing):

**************************************
*     Application In Production!     *
**************************************

しかし、その後、デプロイ スクリプトの残りの実行に進みます。

4

1 に答える 1

7

はい、使用できます:

@error
   echo $task;
   exit; /*Or Do any other processing*/
@enderror

これは出力します

<?php $__container->error(function($task) {
    echo $task;
    exit; /*Or Do any other processing*/
}); ?>

これは、ここのコンパイラ関数にリストされています https://github.com/laravel/envoy/blob/master/src/Compiler.php

于 2016-04-27T15:06:04.847 に答える