Laravel Envoy:错误中止

bra*_*age 8 laravel laravel-envoy laravel-5.1

是否可以在命令失败时中止错误或调用其他任务?

这不起作用:

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

它失败了消息(我知道我可以运行--force,这只是让命令失败以进行测试的一种方法):

**************************************
*     Application In Production!     *
**************************************
Run Code Online (Sandbox Code Playgroud)

但随后它继续运行部署脚本的其余部分.

Tim*_*sey 7

是的,你可以使用:

@error
   echo $task;
   exit; /*Or Do any other processing*/
@enderror
Run Code Online (Sandbox Code Playgroud)

这个输出

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

这在这里的编译器函数中列出https://github.com/laravel/envoy/blob/master/src/Compiler.php