2009-12-22 1 views
3

Я начинаю использовать vlad для новых развертываний и задаюсь вопросом, что лучше всего настроить, чтобы использовать одни и те же задачи для локальных серверов разработки и удаленного производства?Vlad the Deployer - Шаблоны использования?

Я думал о том, чтобы определить все как удаленные задачи, а затем иметь методы dev/prod, которые задают переменную домена, тогда я могу просто позвонить rake dev/prod vlad:do_something, но это просто совершенно неправильно.

Многие из моих задач полезны для запуска на моем локальном сервере и на моем рабочем сервере, и я хочу избежать повторения себя, имея одну «задачу» для локальной и одной «удаленной_талки» для удаленного. например

def do_something 
    run "echo something" 
end 

task :do_something_dev 
    do_something 
end 

remote_task do_something_prod 
    do_something 
end 

Я пропустил что-то или это действительно единственные варианты использования одних и тех же задач рейка как на локальной, так и на удаленной машине?

+1

Мне нравится этот тег :) – 2012-01-05 02:54:05

ответ

5

Как об этом:

[:development, :test, :production].each do |environment| 
    namespace environment do 
    task :do_something do 
     echo "do something on #{environment}" 
    end 
    end 
end 

Это даст вам:

  • rake vlad:development:do_something
  • rake vlad:test:do_something
  • rake vlad:production:do_something

С помощью всего лишь одного метамфетамин о, вероятно, это будет менее многословным, чтобы сделать это по-своему. Но как только у вас будет два или три метода, накладными расходами можно пренебречь.

 Смежные вопросы

  • Нет связанных вопросов^_^