Версия развертывания: 6.2.0
Я хочу написать пользовательскую опцию для развертывателя. Я также хочу использовать его без каких-либо серверных или сценических опций.
Для лучшего понимания я объясняю причину моего желания.
У меня есть хранилище, где у меня есть пользовательские рецепты и задачи развертывания для клиента. Здесь я хочу использовать dep --version
, но если я сделаю это, я получу Deployer master
, потому что он читает версию хранилища, а не версию Deployer .
Поэтому я хочу переписать это, чтобы любой коллега знал, какую версию мы используем в этом проекте.
Я попробовал следующее:
- Я перезаписал опцию --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
Я написал пользовательское задание
// 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]