8

当命令失败时是否可以中止错误或调用另一个任务?

这不起作用:

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

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

**************************************
*     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 回答