Как установить пользовательские параметры без какой-либо сцены или сервера с помощью Deployer? - PullRequest
0 голосов
/ 10 сентября 2018

Версия развертывания: 6.2.0

Я хочу написать пользовательскую опцию для развертывателя. Я также хочу использовать его без каких-либо серверных или сценических опций.

Для лучшего понимания я объясняю причину моего желания.

У меня есть хранилище, где у меня есть пользовательские рецепты и задачи развертывания для клиента. Здесь я хочу использовать dep --version, но если я сделаю это, я получу Deployer master, потому что он читает версию хранилища, а не версию Deployer .

Поэтому я хочу переписать это, чтобы любой коллега знал, какую версию мы используем в этом проекте.

Я попробовал следующее:

  1. Я перезаписал опцию --install

рецепт info.php (include_once от deploy.php)

<?php

option(
    'version',
    null,
    Symfony\Component\Console\Input\InputOption::VALUE_OPTIONAL,
    'Display the correct application version - also in a custom repository'
);

// Shows the correct application version of Deployer with "dep --version"
if (input()->getOption('version')) {
    writeln('Deployer version: 6.2.0');
}

Это приносит мне следующие сообщения об ошибках:

$ ./vendor/bin/dep --version

Неустранимая ошибка PHP: необработанная ошибка: вызов функции-члена getInput () для логического значения в /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/src/functions.php: 510

Трассировка стека:

# 0 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/informations/info.php(11): input ()

# 1 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/deploy.php(6): require_once ('/ Users / monti.re ...')

# 2 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/bin/dep(60): require ('/ Users / monti.re ...')

# 3 {main}

добавляется в /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/src/functions.php в строке 510

Неустранимая ошибка: необработанная ошибка: вызов функции-члена getInput () для логического значения в /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/src/functions.php:510

Трассировка стека:

# 0 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/informations/info.php(11): input ()

# 1 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/deploy.php(6): require_once ('/ Users / monti.re ...')

# 2 /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/bin/dep(60): require ('/ Users / monti.re ...')

# 3 {main}

добавляется в /Users/monti.reinhardt/Documents/Git/mrt9/mrt2-deploy/vendor/deployer/deployer/src/functions.php в строке 510


  1. Я написал пользовательское задание

    // Shows the correct application version of Deployer with "dep version"
    task('version', function() {
        runLocally('mkdir ../version_check && cp ./vendor/bin/dep ../version_check');
        runLocally('../version_check/dep --version');
    });
    

Это показывает мне это сообщение об ошибке:

$ ./vendor/bin/dep version

В строке StageStrategy.php 89:

Вам необходимо указать хотя бы один сервер или стадию.

версия [-p | --parallel]

...