2015-11-11 4 views
4

Возможно ли прервать ошибки или вызвать другую задачу при неудачной команде?Laravel Envoy: abort при ошибке

Это не работает:

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

Это терпит неудачу с сообщением (я знаю, что могу работать --force, это просто способ сделать команду не в состоянии тестирования):

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

Но затем он запускает оставшуюся часть сценария развертывания.

ответ

4

Да, вы можете использовать:

@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