Как в envoy.blade написать такую ​​строку?

В GitLab CI у меня есть две переменные: ПОЛЬЗОВАТЕЛЬ И ХОСТ.

В envoy.plade я хочу получить это:

@servers(['web' => 'user@host'])

Я пишу так:

@servers(['web' => '{{ getenv('USER') }}@{{ getenv('HOST') }}'])

Но получить ошибку, как написать?

2 ответа

Используйте автозагрузчик Composer и добавьте, а затем добавьте переменную окружения, такую ​​как $DEPLOY_SERVER=user@host на ваш .env файл.

@include('vendor/autoload.php')

@setup
    (new Dotenv\Dotenv(__DIR__, '.env'))->load();
    $ssh = getenv('DEPLOY_SERVER');
@endsetup

@servers(['web' => $ssh])

@story('deploy')
    composer
@endstory

@task('composer')
    echo "Deployment complete, you connected as: {{ $ssh }}";
@endtask
      <?php 
   //all below variables are coming from arguments passes with envoy run command
   $name = isset($name) ? $name : null; //web
   $task = isset($task) ? $task : null; //eg list
   $command = isset($command) ? $command : null; //ls (command to run)
   $ip = isset($ip) ? $ip : null; //suppose host is 127.0.0.1
   $user = isset($user) ? $user : null;    
?>

 //Server Connection settings
 {{ $__container->servers([$name => [str_replace('"', '', trim($ip)]])) }}

//Task Details and add the command to run
{{ $__container->startTask($task) }}
    {{$command}}
{{ $__container->endTask() }}

//Open console and in project directory where envoy installed
//envoy command will be like this    
envoy run list --task=list --name=web  --command=ls --ip=127.0.0.1 --user=user
Другие вопросы по тегам