如何将参数或参数传递给Laravel Envoy任务

时间:2018-03-06 18:40:29

标签: php laravel docker-compose laravel-envoy

我正在开发一个laravel项目,我们将docker-compose用于本地开发环境,我们正在尝试使用laravel / envoy缩短我们用于安装composer依赖项和artisan的命令。 以下是我们迄今为止所做的一个例子:

@task('composer-require')
   docker-compose exec -u 1000 web composer require {{ $package }}
@endtask

使用如下 envoy run composer-install --package=xxx/yyy

现在我们的Envoy.blade.php文件变得越来越大,因为我们必须将每个用法作为一项任务,我们必须记住所有这些名称。

我想知道是否有可能,我们如何才能接受像envoy run composer install xxx/yyy这样的命令,只定义一个名为composer的任务,然后传递install xxx/yyy部分?

关于我的英语

1 个答案:

答案 0 :(得分:3)

您可以传递这样的参数envoy run deploy --command=require --package=laracasts/flash.如果您愿意,还可以为--package--command设置默认值。在可能的情况下,使用部署"故事"而不是一次运行一个任务。

@servers(['web' => '127.0.0.1'])

@setup
    $package = isset($package) ? $package : "laravel/envoy";
    $command = isset($command) ? $command : "require";
@endsetup

@story('deploy')
    composer
@endstory

@task('composer')
    echo "Running: composer {{ $command }} {{ $package }}.";
    composer {{ $command }} {{ $package }}
@endtask

@finished
    echo "Envoy deployment complete.\r\n";
@endfinished