Подтвердить что ты не робот

Установка пользовательской переменной в capistrano 3

Я использовал capistrano 2 с моим проектом php, где я использовал для определения пользовательских переменных:

set :app_environment, "test"

И затем я обратился к нему в моих задачах развертывания, например:

run "echo '#{app_environment}' > #{releases_path}/#{release_name}/protected/config/mode.php"

Теперь в capistrano 3 я определяю эту переменную в своих конфигурационных файлах, специфичных для сцены. Но я не определил их в своих задачах:

undefined local variable or method `app_environment' for #<SSHKit::Backend::Netssh:0x007f92323d6988> config/deploy.rb:28:in `block (3 levels) in <top (required)>'

К сожалению, в новейшей версии capistrano нет много документации, и я не совсем знаком с ruby, поэтому я не вижу, как правильно это сделать.

4b9b3361

Ответ 1

Код следует читать:

run "echo '#{fetch(:app_environment)}' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"

Хотя даже это неверно, поскольку run() не существует в Cap3, теперь он execute(), поэтому:

execute "echo '#{fetch(:app_environment)}' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"

Опасайтесь, строя свою команду, как будто ничего не будет использовать карта команд, или соблюдайте конструкции within(), as() или with().

Ответ 2

Теперь это достигается с помощью 'fetch':

fetch(:app_environment)